{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 线性回归"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 一元线性回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([3.15645915, 4.53030677, 2.66982264, 1.08928182, 8.68166479,\n",
       "       6.29728518, 3.52518708, 0.67537599, 6.26350592, 5.9866086 ,\n",
       "       0.92217251, 0.56851551, 2.371322  , 2.3540367 , 7.74371382,\n",
       "       0.42601131, 3.54695279, 4.69166604, 7.6757992 , 8.63516638,\n",
       "       7.77620476, 2.25900156, 7.60389215, 4.41385371, 2.17436735,\n",
       "       6.20251314, 1.4122351 , 0.88755181, 4.37561248, 2.89188192,\n",
       "       2.73069231, 5.49044754, 9.65158649, 6.92406344, 6.44791747,\n",
       "       7.25829272, 9.383001  , 0.47294471, 0.02190553, 3.46374663,\n",
       "       6.7797387 , 3.14115205, 7.83066568, 6.05550374, 1.12060886,\n",
       "       8.86877968, 3.42211267, 5.51175913, 8.15684753, 8.54537963])"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#生成横坐标   范围 0 -10\n",
    "np.random.seed(420)\n",
    "x = np.random.rand(50) * 10 #50个点\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# y = 2x - 5\n",
    "#添加扰动项\n",
    "np.random.seed(420)\n",
    "y = 2 * x - 5 + np.random.randn(50) #正太分布下的随机数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.82752744,  2.15545969, -0.18657652, -3.13498238, 12.69403608,\n",
       "        8.5331076 ,  1.482163  , -3.84302328,  8.83981668,  8.65446819,\n",
       "       -3.92379092, -4.62608691, -0.71473145, -2.44734311, 11.00259711,\n",
       "       -3.76876776,  1.39397186,  5.09225598, 10.00361301, 13.81622057,\n",
       "       11.09921857, -1.76687388,  8.46958143,  3.31288229, -0.28122168,\n",
       "        5.69282924, -0.84698453, -2.37309187,  2.57389993,  1.91098401,\n",
       "        0.95737669,  7.31105401, 14.9512938 ,  6.8498008 ,  8.23610148,\n",
       "        9.81956274, 12.74792212, -3.68438581, -5.94744827,  3.09889911,\n",
       "       10.84641511,  2.38776228, 10.09586882,  7.81862076, -2.59372481,\n",
       "       12.00685709,  1.31456913,  5.42748426, 10.66297504, 12.10833264])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y#将对应的y计算出来"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1172bad10>]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x,y,'o')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 导入线性回归模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "#实例化\n",
    "lr = LinearRegression(fit_intercept=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([3.15645915, 4.53030677, 2.66982264, 1.08928182, 8.68166479,\n",
       "       6.29728518, 3.52518708, 0.67537599, 6.26350592, 5.9866086 ,\n",
       "       0.92217251, 0.56851551, 2.371322  , 2.3540367 , 7.74371382,\n",
       "       0.42601131, 3.54695279, 4.69166604, 7.6757992 , 8.63516638,\n",
       "       7.77620476, 2.25900156, 7.60389215, 4.41385371, 2.17436735,\n",
       "       6.20251314, 1.4122351 , 0.88755181, 4.37561248, 2.89188192,\n",
       "       2.73069231, 5.49044754, 9.65158649, 6.92406344, 6.44791747,\n",
       "       7.25829272, 9.383001  , 0.47294471, 0.02190553, 3.46374663,\n",
       "       6.7797387 , 3.14115205, 7.83066568, 6.05550374, 1.12060886,\n",
       "       8.86877968, 3.42211267, 5.51175913, 8.15684753, 8.54537963])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "x2 = x.reshape(-1,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[3.15645915],\n",
       "       [4.53030677],\n",
       "       [2.66982264],\n",
       "       [1.08928182],\n",
       "       [8.68166479],\n",
       "       [6.29728518],\n",
       "       [3.52518708],\n",
       "       [0.67537599],\n",
       "       [6.26350592],\n",
       "       [5.9866086 ],\n",
       "       [0.92217251],\n",
       "       [0.56851551],\n",
       "       [2.371322  ],\n",
       "       [2.3540367 ],\n",
       "       [7.74371382],\n",
       "       [0.42601131],\n",
       "       [3.54695279],\n",
       "       [4.69166604],\n",
       "       [7.6757992 ],\n",
       "       [8.63516638],\n",
       "       [7.77620476],\n",
       "       [2.25900156],\n",
       "       [7.60389215],\n",
       "       [4.41385371],\n",
       "       [2.17436735],\n",
       "       [6.20251314],\n",
       "       [1.4122351 ],\n",
       "       [0.88755181],\n",
       "       [4.37561248],\n",
       "       [2.89188192],\n",
       "       [2.73069231],\n",
       "       [5.49044754],\n",
       "       [9.65158649],\n",
       "       [6.92406344],\n",
       "       [6.44791747],\n",
       "       [7.25829272],\n",
       "       [9.383001  ],\n",
       "       [0.47294471],\n",
       "       [0.02190553],\n",
       "       [3.46374663],\n",
       "       [6.7797387 ],\n",
       "       [3.14115205],\n",
       "       [7.83066568],\n",
       "       [6.05550374],\n",
       "       [1.12060886],\n",
       "       [8.86877968],\n",
       "       [3.42211267],\n",
       "       [5.51175913],\n",
       "       [8.15684753],\n",
       "       [8.54537963]])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 训练模型\n",
    "lr.fit(x2, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2.02606953])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.coef_ #斜率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-5.163803042721516"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.intercept_ #截距"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 将拟合好的直线画出来"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 生成绘制直线的横坐标\n",
    "xfit = np.linspace(0,10,100) #从0到10  生成100个"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.        ,  0.1010101 ,  0.2020202 ,  0.3030303 ,  0.4040404 ,\n",
       "        0.50505051,  0.60606061,  0.70707071,  0.80808081,  0.90909091,\n",
       "        1.01010101,  1.11111111,  1.21212121,  1.31313131,  1.41414141,\n",
       "        1.51515152,  1.61616162,  1.71717172,  1.81818182,  1.91919192,\n",
       "        2.02020202,  2.12121212,  2.22222222,  2.32323232,  2.42424242,\n",
       "        2.52525253,  2.62626263,  2.72727273,  2.82828283,  2.92929293,\n",
       "        3.03030303,  3.13131313,  3.23232323,  3.33333333,  3.43434343,\n",
       "        3.53535354,  3.63636364,  3.73737374,  3.83838384,  3.93939394,\n",
       "        4.04040404,  4.14141414,  4.24242424,  4.34343434,  4.44444444,\n",
       "        4.54545455,  4.64646465,  4.74747475,  4.84848485,  4.94949495,\n",
       "        5.05050505,  5.15151515,  5.25252525,  5.35353535,  5.45454545,\n",
       "        5.55555556,  5.65656566,  5.75757576,  5.85858586,  5.95959596,\n",
       "        6.06060606,  6.16161616,  6.26262626,  6.36363636,  6.46464646,\n",
       "        6.56565657,  6.66666667,  6.76767677,  6.86868687,  6.96969697,\n",
       "        7.07070707,  7.17171717,  7.27272727,  7.37373737,  7.47474747,\n",
       "        7.57575758,  7.67676768,  7.77777778,  7.87878788,  7.97979798,\n",
       "        8.08080808,  8.18181818,  8.28282828,  8.38383838,  8.48484848,\n",
       "        8.58585859,  8.68686869,  8.78787879,  8.88888889,  8.98989899,\n",
       "        9.09090909,  9.19191919,  9.29292929,  9.39393939,  9.49494949,\n",
       "        9.5959596 ,  9.6969697 ,  9.7979798 ,  9.8989899 , 10.        ])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xfit"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "xfit2 = xfit.reshape(-1,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "yfit = lr.predict(xfit2) #预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1a1a3f1e10>]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#画出点的直线\n",
    "plt.plot(xfit,yfit)\n",
    "#画出原来训练集的点\n",
    "plt.plot(x,y,'o')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 加利福尼亚房价预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn.datasets import fetch_california_housing #加利福尼亚房屋价值数据集\n",
    "import pandas as pd "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 下载数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "housevalue = fetch_california_housing() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'data': array([[   8.3252    ,   41.        ,    6.98412698, ...,    2.55555556,\n",
       "           37.88      , -122.23      ],\n",
       "        [   8.3014    ,   21.        ,    6.23813708, ...,    2.10984183,\n",
       "           37.86      , -122.22      ],\n",
       "        [   7.2574    ,   52.        ,    8.28813559, ...,    2.80225989,\n",
       "           37.85      , -122.24      ],\n",
       "        ...,\n",
       "        [   1.7       ,   17.        ,    5.20554273, ...,    2.3256351 ,\n",
       "           39.43      , -121.22      ],\n",
       "        [   1.8672    ,   18.        ,    5.32951289, ...,    2.12320917,\n",
       "           39.43      , -121.32      ],\n",
       "        [   2.3886    ,   16.        ,    5.25471698, ...,    2.61698113,\n",
       "           39.37      , -121.24      ]]),\n",
       " 'target': array([4.526, 3.585, 3.521, ..., 0.923, 0.847, 0.894]),\n",
       " 'frame': None,\n",
       " 'target_names': ['MedHouseVal'],\n",
       " 'feature_names': ['MedInc',\n",
       "  'HouseAge',\n",
       "  'AveRooms',\n",
       "  'AveBedrms',\n",
       "  'Population',\n",
       "  'AveOccup',\n",
       "  'Latitude',\n",
       "  'Longitude'],\n",
       " 'DESCR': '.. _california_housing_dataset:\\n\\nCalifornia Housing dataset\\n--------------------------\\n\\n**Data Set Characteristics:**\\n\\n    :Number of Instances: 20640\\n\\n    :Number of Attributes: 8 numeric, predictive attributes and the target\\n\\n    :Attribute Information:\\n        - MedInc        median income in block\\n        - HouseAge      median house age in block\\n        - AveRooms      average number of rooms\\n        - AveBedrms     average number of bedrooms\\n        - Population    block population\\n        - AveOccup      average house occupancy\\n        - Latitude      house block latitude\\n        - Longitude     house block longitude\\n\\n    :Missing Attribute Values: None\\n\\nThis dataset was obtained from the StatLib repository.\\nhttp://lib.stat.cmu.edu/datasets/\\n\\nThe target variable is the median house value for California districts.\\n\\nThis dataset was derived from the 1990 U.S. census, using one row per census\\nblock group. A block group is the smallest geographical unit for which the U.S.\\nCensus Bureau publishes sample data (a block group typically has a population\\nof 600 to 3,000 people).\\n\\nIt can be downloaded/loaded using the\\n:func:`sklearn.datasets.fetch_california_housing` function.\\n\\n.. topic:: References\\n\\n    - Pace, R. Kelley and Ronald Barry, Sparse Spatial Autoregressions,\\n      Statistics and Probability Letters, 33 (1997) 291-297\\n'}"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "housevalue"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['MedInc',\n",
       " 'HouseAge',\n",
       " 'AveRooms',\n",
       " 'AveBedrms',\n",
       " 'Population',\n",
       " 'AveOccup',\n",
       " 'Latitude',\n",
       " 'Longitude']"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "housevalue.feature_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 特征解释\n",
    "# MedInc：该街区住户的收入中位数\n",
    "# HouseAge：该街区房屋使用年代的中位数\n",
    "# AveRooms：该街区平均的房间数目\n",
    "# AveBedrms：该街区平均的卧室数目\n",
    "# Population：街区人口\n",
    "# AveOccup：平均入住率\n",
    "# Latitude：街区的纬度\n",
    "# Longitude：街区的经度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "#将数据转成DataFrame\n",
    "X = pd.DataFrame(housevalue.data,columns=housevalue.feature_names)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MedInc</th>\n",
       "      <th>HouseAge</th>\n",
       "      <th>AveRooms</th>\n",
       "      <th>AveBedrms</th>\n",
       "      <th>Population</th>\n",
       "      <th>AveOccup</th>\n",
       "      <th>Latitude</th>\n",
       "      <th>Longitude</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>8.3252</td>\n",
       "      <td>41.0</td>\n",
       "      <td>6.984127</td>\n",
       "      <td>1.023810</td>\n",
       "      <td>322.0</td>\n",
       "      <td>2.555556</td>\n",
       "      <td>37.88</td>\n",
       "      <td>-122.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>8.3014</td>\n",
       "      <td>21.0</td>\n",
       "      <td>6.238137</td>\n",
       "      <td>0.971880</td>\n",
       "      <td>2401.0</td>\n",
       "      <td>2.109842</td>\n",
       "      <td>37.86</td>\n",
       "      <td>-122.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>7.2574</td>\n",
       "      <td>52.0</td>\n",
       "      <td>8.288136</td>\n",
       "      <td>1.073446</td>\n",
       "      <td>496.0</td>\n",
       "      <td>2.802260</td>\n",
       "      <td>37.85</td>\n",
       "      <td>-122.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5.6431</td>\n",
       "      <td>52.0</td>\n",
       "      <td>5.817352</td>\n",
       "      <td>1.073059</td>\n",
       "      <td>558.0</td>\n",
       "      <td>2.547945</td>\n",
       "      <td>37.85</td>\n",
       "      <td>-122.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3.8462</td>\n",
       "      <td>52.0</td>\n",
       "      <td>6.281853</td>\n",
       "      <td>1.081081</td>\n",
       "      <td>565.0</td>\n",
       "      <td>2.181467</td>\n",
       "      <td>37.85</td>\n",
       "      <td>-122.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20635</th>\n",
       "      <td>1.5603</td>\n",
       "      <td>25.0</td>\n",
       "      <td>5.045455</td>\n",
       "      <td>1.133333</td>\n",
       "      <td>845.0</td>\n",
       "      <td>2.560606</td>\n",
       "      <td>39.48</td>\n",
       "      <td>-121.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20636</th>\n",
       "      <td>2.5568</td>\n",
       "      <td>18.0</td>\n",
       "      <td>6.114035</td>\n",
       "      <td>1.315789</td>\n",
       "      <td>356.0</td>\n",
       "      <td>3.122807</td>\n",
       "      <td>39.49</td>\n",
       "      <td>-121.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20637</th>\n",
       "      <td>1.7000</td>\n",
       "      <td>17.0</td>\n",
       "      <td>5.205543</td>\n",
       "      <td>1.120092</td>\n",
       "      <td>1007.0</td>\n",
       "      <td>2.325635</td>\n",
       "      <td>39.43</td>\n",
       "      <td>-121.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20638</th>\n",
       "      <td>1.8672</td>\n",
       "      <td>18.0</td>\n",
       "      <td>5.329513</td>\n",
       "      <td>1.171920</td>\n",
       "      <td>741.0</td>\n",
       "      <td>2.123209</td>\n",
       "      <td>39.43</td>\n",
       "      <td>-121.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20639</th>\n",
       "      <td>2.3886</td>\n",
       "      <td>16.0</td>\n",
       "      <td>5.254717</td>\n",
       "      <td>1.162264</td>\n",
       "      <td>1387.0</td>\n",
       "      <td>2.616981</td>\n",
       "      <td>39.37</td>\n",
       "      <td>-121.24</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>20640 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       MedInc  HouseAge  AveRooms  AveBedrms  Population  AveOccup  Latitude  \\\n",
       "0      8.3252      41.0  6.984127   1.023810       322.0  2.555556     37.88   \n",
       "1      8.3014      21.0  6.238137   0.971880      2401.0  2.109842     37.86   \n",
       "2      7.2574      52.0  8.288136   1.073446       496.0  2.802260     37.85   \n",
       "3      5.6431      52.0  5.817352   1.073059       558.0  2.547945     37.85   \n",
       "4      3.8462      52.0  6.281853   1.081081       565.0  2.181467     37.85   \n",
       "...       ...       ...       ...        ...         ...       ...       ...   \n",
       "20635  1.5603      25.0  5.045455   1.133333       845.0  2.560606     39.48   \n",
       "20636  2.5568      18.0  6.114035   1.315789       356.0  3.122807     39.49   \n",
       "20637  1.7000      17.0  5.205543   1.120092      1007.0  2.325635     39.43   \n",
       "20638  1.8672      18.0  5.329513   1.171920       741.0  2.123209     39.43   \n",
       "20639  2.3886      16.0  5.254717   1.162264      1387.0  2.616981     39.37   \n",
       "\n",
       "       Longitude  \n",
       "0        -122.23  \n",
       "1        -122.22  \n",
       "2        -122.24  \n",
       "3        -122.25  \n",
       "4        -122.25  \n",
       "...          ...  \n",
       "20635    -121.09  \n",
       "20636    -121.21  \n",
       "20637    -121.22  \n",
       "20638    -121.32  \n",
       "20639    -121.24  \n",
       "\n",
       "[20640 rows x 8 columns]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "y = housevalue.target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([4.526, 3.585, 3.521, ..., 0.923, 0.847, 0.894])"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 拆分数据集（训练集和测试集）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "Xtrain,Xtest,Ytrain,Ytest = train_test_split(X,y,test_size=0.3,random_state=420)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MedInc</th>\n",
       "      <th>HouseAge</th>\n",
       "      <th>AveRooms</th>\n",
       "      <th>AveBedrms</th>\n",
       "      <th>Population</th>\n",
       "      <th>AveOccup</th>\n",
       "      <th>Latitude</th>\n",
       "      <th>Longitude</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>17073</th>\n",
       "      <td>4.1776</td>\n",
       "      <td>35.0</td>\n",
       "      <td>4.425172</td>\n",
       "      <td>1.030683</td>\n",
       "      <td>5380.0</td>\n",
       "      <td>3.368817</td>\n",
       "      <td>37.48</td>\n",
       "      <td>-122.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16956</th>\n",
       "      <td>5.3261</td>\n",
       "      <td>38.0</td>\n",
       "      <td>6.267516</td>\n",
       "      <td>1.089172</td>\n",
       "      <td>429.0</td>\n",
       "      <td>2.732484</td>\n",
       "      <td>37.53</td>\n",
       "      <td>-122.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20012</th>\n",
       "      <td>1.9439</td>\n",
       "      <td>26.0</td>\n",
       "      <td>5.768977</td>\n",
       "      <td>1.141914</td>\n",
       "      <td>891.0</td>\n",
       "      <td>2.940594</td>\n",
       "      <td>36.02</td>\n",
       "      <td>-119.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13072</th>\n",
       "      <td>2.5000</td>\n",
       "      <td>22.0</td>\n",
       "      <td>4.916000</td>\n",
       "      <td>1.012000</td>\n",
       "      <td>733.0</td>\n",
       "      <td>2.932000</td>\n",
       "      <td>38.57</td>\n",
       "      <td>-121.31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8457</th>\n",
       "      <td>3.8250</td>\n",
       "      <td>34.0</td>\n",
       "      <td>5.036765</td>\n",
       "      <td>1.098039</td>\n",
       "      <td>1134.0</td>\n",
       "      <td>2.779412</td>\n",
       "      <td>33.91</td>\n",
       "      <td>-118.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10394</th>\n",
       "      <td>4.7981</td>\n",
       "      <td>16.0</td>\n",
       "      <td>6.408537</td>\n",
       "      <td>1.067073</td>\n",
       "      <td>1003.0</td>\n",
       "      <td>3.057927</td>\n",
       "      <td>33.54</td>\n",
       "      <td>-117.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1209</th>\n",
       "      <td>2.3816</td>\n",
       "      <td>16.0</td>\n",
       "      <td>6.055954</td>\n",
       "      <td>1.120516</td>\n",
       "      <td>1516.0</td>\n",
       "      <td>2.175036</td>\n",
       "      <td>38.15</td>\n",
       "      <td>-120.46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14254</th>\n",
       "      <td>1.7500</td>\n",
       "      <td>25.0</td>\n",
       "      <td>3.912500</td>\n",
       "      <td>1.029167</td>\n",
       "      <td>1003.0</td>\n",
       "      <td>4.179167</td>\n",
       "      <td>32.71</td>\n",
       "      <td>-117.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19059</th>\n",
       "      <td>3.5647</td>\n",
       "      <td>33.0</td>\n",
       "      <td>5.423358</td>\n",
       "      <td>1.058394</td>\n",
       "      <td>781.0</td>\n",
       "      <td>2.850365</td>\n",
       "      <td>38.22</td>\n",
       "      <td>-122.49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11185</th>\n",
       "      <td>5.0599</td>\n",
       "      <td>35.0</td>\n",
       "      <td>5.271429</td>\n",
       "      <td>0.985714</td>\n",
       "      <td>641.0</td>\n",
       "      <td>3.052381</td>\n",
       "      <td>33.83</td>\n",
       "      <td>-117.95</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>14448 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       MedInc  HouseAge  AveRooms  AveBedrms  Population  AveOccup  Latitude  \\\n",
       "17073  4.1776      35.0  4.425172   1.030683      5380.0  3.368817     37.48   \n",
       "16956  5.3261      38.0  6.267516   1.089172       429.0  2.732484     37.53   \n",
       "20012  1.9439      26.0  5.768977   1.141914       891.0  2.940594     36.02   \n",
       "13072  2.5000      22.0  4.916000   1.012000       733.0  2.932000     38.57   \n",
       "8457   3.8250      34.0  5.036765   1.098039      1134.0  2.779412     33.91   \n",
       "...       ...       ...       ...        ...         ...       ...       ...   \n",
       "10394  4.7981      16.0  6.408537   1.067073      1003.0  3.057927     33.54   \n",
       "1209   2.3816      16.0  6.055954   1.120516      1516.0  2.175036     38.15   \n",
       "14254  1.7500      25.0  3.912500   1.029167      1003.0  4.179167     32.71   \n",
       "19059  3.5647      33.0  5.423358   1.058394       781.0  2.850365     38.22   \n",
       "11185  5.0599      35.0  5.271429   0.985714       641.0  3.052381     33.83   \n",
       "\n",
       "       Longitude  \n",
       "17073    -122.19  \n",
       "16956    -122.30  \n",
       "20012    -119.08  \n",
       "13072    -121.31  \n",
       "8457     -118.35  \n",
       "...          ...  \n",
       "10394    -117.67  \n",
       "1209     -120.46  \n",
       "14254    -117.10  \n",
       "19059    -122.49  \n",
       "11185    -117.95  \n",
       "\n",
       "[14448 rows x 8 columns]"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Xtrain"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 线性回归建模"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "lr = LinearRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#训练数据\n",
    "lr.fit(Xtrain,Ytrain)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型评估"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### MSE均方误差"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- MSE趋于0效果越好"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import mean_squared_error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "#对训练集做预测\n",
    "y_pred =lr.predict(Xtrain)#得到预测结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.52185226625331"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 评估训练集集合情况  参数1:真实标签 参数2:预测标签\n",
    "mean_squared_error(Ytrain,y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_test_pred = lr.predict(Xtest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5309012639324571"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mean_squared_error(Ytest,y_test_pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 交叉验证"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "lr2 = LinearRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.52730876, -0.50816696, -0.48736401, -0.49269076, -0.56611205,\n",
       "       -0.53795641, -0.48253409, -0.5130032 , -0.53188562, -0.60443733])"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 交叉验证使用-MSE指标\n",
    "cross_val_score(lr2,Xtrain,Ytrain,cv=10,scoring='neg_mean_squared_error')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['accuracy',\n",
       " 'adjusted_mutual_info_score',\n",
       " 'adjusted_rand_score',\n",
       " 'average_precision',\n",
       " 'balanced_accuracy',\n",
       " 'completeness_score',\n",
       " 'explained_variance',\n",
       " 'f1',\n",
       " 'f1_macro',\n",
       " 'f1_micro',\n",
       " 'f1_samples',\n",
       " 'f1_weighted',\n",
       " 'fowlkes_mallows_score',\n",
       " 'homogeneity_score',\n",
       " 'jaccard',\n",
       " 'jaccard_macro',\n",
       " 'jaccard_micro',\n",
       " 'jaccard_samples',\n",
       " 'jaccard_weighted',\n",
       " 'max_error',\n",
       " 'mutual_info_score',\n",
       " 'neg_brier_score',\n",
       " 'neg_log_loss',\n",
       " 'neg_mean_absolute_error',\n",
       " 'neg_mean_gamma_deviance',\n",
       " 'neg_mean_poisson_deviance',\n",
       " 'neg_mean_squared_error',\n",
       " 'neg_mean_squared_log_error',\n",
       " 'neg_median_absolute_error',\n",
       " 'neg_root_mean_squared_error',\n",
       " 'normalized_mutual_info_score',\n",
       " 'precision',\n",
       " 'precision_macro',\n",
       " 'precision_micro',\n",
       " 'precision_samples',\n",
       " 'precision_weighted',\n",
       " 'r2',\n",
       " 'recall',\n",
       " 'recall_macro',\n",
       " 'recall_micro',\n",
       " 'recall_samples',\n",
       " 'recall_weighted',\n",
       " 'roc_auc',\n",
       " 'roc_auc_ovo',\n",
       " 'roc_auc_ovo_weighted',\n",
       " 'roc_auc_ovr',\n",
       " 'roc_auc_ovr_weighted',\n",
       " 'v_measure_score']"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import sklearn\n",
    "sorted(sklearn.metrics.SCORERS.keys())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.5251459182173354"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(lr2,Xtrain,Ytrain,cv=10,scoring='neg_mean_squared_error').mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### MAE绝对均值误差"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "与MSE差不多，两个选一个用即可"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import mean_absolute_error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.530942761735602"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mean_absolute_error(Ytrain,y_pred) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.52722504, -0.52321403, -0.52579163, -0.52038755, -0.5431045 ,\n",
       "       -0.53622198, -0.5218329 , -0.53052166, -0.53266059, -0.55297171])"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 交叉验证使用-MAE指标\n",
    "cross_val_score(lr2,Xtrain,Ytrain,cv=10,scoring='neg_mean_absolute_error')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.5313931576388835"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(lr2,Xtrain,Ytrain,cv=10,scoring='neg_mean_absolute_error').mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### R方"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 方差是来衡量数据集包含了多少信息量\n",
    "- R方越趋于1拟合效果就越好，趋于0拟合效果越差"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import r2_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6067440341875014"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r2_score(Ytrain,y_pred) #训练集R2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6043668160178817"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r2_score(Ytest,y_test_pred) #测试集R2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6067440341875014"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.score(Xtrain,Ytrain)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6043668160178817"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.score(Xtest,Ytest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.61759405, 0.63271089, 0.61770019, 0.61599307, 0.57902382,\n",
       "       0.59578732, 0.63348265, 0.60091314, 0.59964669, 0.54638642])"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(lr,Xtrain,Ytrain,cv=10,scoring='r2')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6039238235546339"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(lr,Xtrain,Ytrain,cv=10,scoring='r2').mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 查看模型系数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 4.37358931e-01,  1.02112683e-02, -1.07807216e-01,  6.26433828e-01,\n",
       "        5.21612535e-07, -3.34850965e-03, -4.13095938e-01, -4.26210954e-01])"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.coef_ #训练结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-36.25689322920386"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.intercept_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('MedInc', 0.4373589305968403),\n",
       " ('HouseAge', 0.010211268294494038),\n",
       " ('AveRooms', -0.10780721617317715),\n",
       " ('AveBedrms', 0.6264338275363783),\n",
       " ('Population', 5.216125353178735e-07),\n",
       " ('AveOccup', -0.0033485096463336094),\n",
       " ('Latitude', -0.4130959378947711),\n",
       " ('Longitude', -0.4262109536208467)]"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(zip(X.columns,lr.coef_))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 特征解释\n",
    "# MedInc：该街区住户的收入中位数\n",
    "# HouseAge：该街区房屋使用年代的中位数\n",
    "# AveRooms：该街区平均的房间数目\n",
    "# AveBedrms：该街区平均的卧室数目\n",
    "# Population：街区人口\n",
    "# AveOccup：平均入住率\n",
    "# Latitude：街区的纬度\n",
    "# Longitude：街区的经度"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 将数据集标准化之后再训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import StandardScaler"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "std = StandardScaler()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "#对训练集进行标准化\n",
    "X_train_std = std.fit_transform(Xtrain)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.15962565,  0.51019125, -0.40038616, ...,  0.02097226,\n",
       "         0.86530441, -1.30925728],\n",
       "       [ 0.7616735 ,  0.74878657,  0.33049412, ..., -0.03103851,\n",
       "         0.88874515, -1.36422214],\n",
       "       [-1.01128797, -0.20559469,  0.1327176 , ..., -0.0140286 ,\n",
       "         0.180835  ,  0.24474943],\n",
       "       ...,\n",
       "       [-1.11293105, -0.28512647, -0.60376949, ...,  0.08720641,\n",
       "        -1.37094154,  1.23411704],\n",
       "       [-0.16165875,  0.35112771, -0.00439378, ..., -0.02140349,\n",
       "         1.21222727, -1.45916146],\n",
       "       [ 0.6221305 ,  0.51019125, -0.06466591, ..., -0.00489167,\n",
       "        -0.84586911,  0.80938852]])"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train_std"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MedInc</th>\n",
       "      <th>HouseAge</th>\n",
       "      <th>AveRooms</th>\n",
       "      <th>AveBedrms</th>\n",
       "      <th>Population</th>\n",
       "      <th>AveOccup</th>\n",
       "      <th>Latitude</th>\n",
       "      <th>Longitude</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>17073</th>\n",
       "      <td>4.1776</td>\n",
       "      <td>35.0</td>\n",
       "      <td>4.425172</td>\n",
       "      <td>1.030683</td>\n",
       "      <td>5380.0</td>\n",
       "      <td>3.368817</td>\n",
       "      <td>37.48</td>\n",
       "      <td>-122.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16956</th>\n",
       "      <td>5.3261</td>\n",
       "      <td>38.0</td>\n",
       "      <td>6.267516</td>\n",
       "      <td>1.089172</td>\n",
       "      <td>429.0</td>\n",
       "      <td>2.732484</td>\n",
       "      <td>37.53</td>\n",
       "      <td>-122.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20012</th>\n",
       "      <td>1.9439</td>\n",
       "      <td>26.0</td>\n",
       "      <td>5.768977</td>\n",
       "      <td>1.141914</td>\n",
       "      <td>891.0</td>\n",
       "      <td>2.940594</td>\n",
       "      <td>36.02</td>\n",
       "      <td>-119.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13072</th>\n",
       "      <td>2.5000</td>\n",
       "      <td>22.0</td>\n",
       "      <td>4.916000</td>\n",
       "      <td>1.012000</td>\n",
       "      <td>733.0</td>\n",
       "      <td>2.932000</td>\n",
       "      <td>38.57</td>\n",
       "      <td>-121.31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8457</th>\n",
       "      <td>3.8250</td>\n",
       "      <td>34.0</td>\n",
       "      <td>5.036765</td>\n",
       "      <td>1.098039</td>\n",
       "      <td>1134.0</td>\n",
       "      <td>2.779412</td>\n",
       "      <td>33.91</td>\n",
       "      <td>-118.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10394</th>\n",
       "      <td>4.7981</td>\n",
       "      <td>16.0</td>\n",
       "      <td>6.408537</td>\n",
       "      <td>1.067073</td>\n",
       "      <td>1003.0</td>\n",
       "      <td>3.057927</td>\n",
       "      <td>33.54</td>\n",
       "      <td>-117.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1209</th>\n",
       "      <td>2.3816</td>\n",
       "      <td>16.0</td>\n",
       "      <td>6.055954</td>\n",
       "      <td>1.120516</td>\n",
       "      <td>1516.0</td>\n",
       "      <td>2.175036</td>\n",
       "      <td>38.15</td>\n",
       "      <td>-120.46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14254</th>\n",
       "      <td>1.7500</td>\n",
       "      <td>25.0</td>\n",
       "      <td>3.912500</td>\n",
       "      <td>1.029167</td>\n",
       "      <td>1003.0</td>\n",
       "      <td>4.179167</td>\n",
       "      <td>32.71</td>\n",
       "      <td>-117.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19059</th>\n",
       "      <td>3.5647</td>\n",
       "      <td>33.0</td>\n",
       "      <td>5.423358</td>\n",
       "      <td>1.058394</td>\n",
       "      <td>781.0</td>\n",
       "      <td>2.850365</td>\n",
       "      <td>38.22</td>\n",
       "      <td>-122.49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11185</th>\n",
       "      <td>5.0599</td>\n",
       "      <td>35.0</td>\n",
       "      <td>5.271429</td>\n",
       "      <td>0.985714</td>\n",
       "      <td>641.0</td>\n",
       "      <td>3.052381</td>\n",
       "      <td>33.83</td>\n",
       "      <td>-117.95</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>14448 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       MedInc  HouseAge  AveRooms  AveBedrms  Population  AveOccup  Latitude  \\\n",
       "17073  4.1776      35.0  4.425172   1.030683      5380.0  3.368817     37.48   \n",
       "16956  5.3261      38.0  6.267516   1.089172       429.0  2.732484     37.53   \n",
       "20012  1.9439      26.0  5.768977   1.141914       891.0  2.940594     36.02   \n",
       "13072  2.5000      22.0  4.916000   1.012000       733.0  2.932000     38.57   \n",
       "8457   3.8250      34.0  5.036765   1.098039      1134.0  2.779412     33.91   \n",
       "...       ...       ...       ...        ...         ...       ...       ...   \n",
       "10394  4.7981      16.0  6.408537   1.067073      1003.0  3.057927     33.54   \n",
       "1209   2.3816      16.0  6.055954   1.120516      1516.0  2.175036     38.15   \n",
       "14254  1.7500      25.0  3.912500   1.029167      1003.0  4.179167     32.71   \n",
       "19059  3.5647      33.0  5.423358   1.058394       781.0  2.850365     38.22   \n",
       "11185  5.0599      35.0  5.271429   0.985714       641.0  3.052381     33.83   \n",
       "\n",
       "       Longitude  \n",
       "17073    -122.19  \n",
       "16956    -122.30  \n",
       "20012    -119.08  \n",
       "13072    -121.31  \n",
       "8457     -118.35  \n",
       "...          ...  \n",
       "10394    -117.67  \n",
       "1209     -120.46  \n",
       "14254    -117.10  \n",
       "19059    -122.49  \n",
       "11185    -117.95  \n",
       "\n",
       "[14448 rows x 8 columns]"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Xtrain"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "lr3 = LinearRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr3.fit(X_train_std,Ytrain)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6067440341875014"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr3.score(X_train_std,Ytrain)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 绘制拟合图像"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 绘制预测值的散点和真实值的直线进行对比\n",
    "- 如果两者趋势越接近（预测值的散点越靠近真实值）拟合效果优秀"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAAD4CAYAAADFAawfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAACrwElEQVR4nO39f3Rc1ZUuin5bVVLptyxbdktgWxhaBgtD7LbdJg2H5Hac4PaDA3ckz/RJboAknJy+JxnDZ3Q/bkN3nLzg3BvOY9y+7dfk3HSOgYR+0AcuOU03vhwTnNMdYhIrthsDtsFW/EOyjRRZtn6USlJJqtrvj72/VXOvWnvXLqlKLtE1x2BYSFV7r59zzTXnN79p2baNspSlLGUpS+lKxdVuQFnKUpaylCVYyoq6LGUpS1lKXMqKuixlKUtZSlzKirosZSlLWUpcyoq6LGUpS1lKXKLFeGhLS4t93XXXFePRZSlLWcrykZQjR44M2ra91PS3oijq6667DocPHy7Go8tSlrKU5SMplmX1+P2t7PooS1nKUpYSl7KiLktZylKWEpeyoi5LWcpSlhKXsqIuS1nKUpYSl7KiLktZylKWEpdQqA/Lss4BiANIAZixbXtjMRtVlrKUpSxlyUg+8Lz/wbbtwaK1pCxlKUtZymKUouCo5yIvdPXiO3uPI5UGljbG0FIfw867OwEAu/efwta1bdh3rA9b17bh2QNn0D+axBc2r8TBM5cxmJjCyPg0PrVmGX526hIeuesmfH7zSjzx2vv4wZtnEIlY+K3GarTUx3DbqsV47pfnkEoDK5fU4ku3r8JLh3qRmEoBAOpiUWzfuAL7jvWhs60RLx4+j0fuugk3tjZg16vHMZiYwqXRJCIVFr7htu/b/3AMyZSNWLQCf7C2FT99/zdobarxPJvP/U//2I2+kUn82391PVYuqcOTr3+AT6xeip++/xtUV0UwOZXGY9vWqPfJ77L/Lx3qVX3+wuaVONE3isV1Vfj7ox/CBhCLVuBLv3cdDp65DFgWtm9c4enjxHQKV8amsLi+yjPOu149josjE7gcn0JLQxWuWVTrGa+ljTEAwMj4NNavXIS3fj2IaxbV4H/+5G/jpUO96l3PHjiD3isTmEmnkbKBSnf8ayojGJ6YwqX4lJr35tooktM2FtdXAYBqV01lRM3Hzrs7cbI/ju++diJrjHbvP4XOtkY839Wj/qavC/2zck4fffkdtZZ++v5v0HtlApEKCw98vB0Hz1z2jJkcb84D50eOIX9326rFeL6rB021Tt+4bh74eDtO9I1ix5bV6jtcV2mXfrjCstT6fPbAGZy7PI6ZtI3lzTX4yz9cr/bF4roqvPrOh2oe5GeXunPYWB3Fm92DiFQADdVRxCdmcM/HrsG5wQQSUynPnFgAbAD3rbsGv7tqCZ58/QPcv3GFGgtTXylyjV8cnkQ0YuG6JXVqH3B97DvWhx1bVuNkfxxPvv4Bbrm2CW/9ehBL6p32yrX+7IEzuDg86VkTnIvHtq1R+/yv3zwDEjc310Yxk4L6OwAc6RlS47X33T6svaYRxz4cxd23tuHcYEK17f944yQujU2hMmLhK7evytIv3NufumkZXjx8Xo0NLAs77+7Ehvbm2SlAH7HC8FFblnUWwBCcuftr27Z/YPjMVwF8FQBWrly5oafHF7sdKOsf/wmGxqc9v7uzowUA8Gb3IJprKzE0Pq3+BYBohYWZdHY/mmsr8fY3P4Pf/rPXsv6uf0c+T/8dP9tcW4lbrm3Cm92DWZ8DkPV9SkMsgngy5fm8bHtDddT43WiFhbXXNuHo+eGs7+rt9RsD+XtTH6XIcQ56jp/I5+d612zkzo4WvHdxxPNcOSd6G01zrH9Wn9Ncz9B/r/fTNIa5nhE07rLtpn0xOjGNoxdGcn52LqLvA/l+v3YH7Sf5s2lO9c/n6k/QPpd/B4AHnu4KHGdT24PWPv8mP3NnRwue+8rmwHeYxLKsI35u5bAW9e22bX9oWdYyAG9YlvWBbdtvyg+4yvsHALBx48ZZVyN45K6bsixqWhwA8raoAeDhO1YV1KIenZj2WNR8j59FDQDxgTHUVkawurXBY1E/fMcqo0V9ZWzKmXjbxrrlTfNiUXOcRyemC2ZRn7s8jml3Ac/Voqb1JS1qzgmAnBa1/lk5p33DEwWxqOUY5mtRy3WVtm01brWVFXjkrpuyLOodW1Zj194TAIClDVW4MjY1rxa13lcK+/zsW2eRTNmoLLJFLfe5yaLm3wGoNhfTopb6qmBi23Ze/wH4fwP4fwV9ZsOGDXZZbPvwuSv2F/cctJ8/2GN/cc9B+/C5K3l/N5/vlKJ8cc9Bu/1P99pf3HPwajdlTnI15iPMO0t1nRRz3mfb51IdKwqAw7aPTs1pUVuWVQegwrbtuPvzZwA8Xvgj46Mnu/efUtesfK9CG9qbZ3V9KjWhdVEUK2MeZS5zOVsJswZKaZ3Q/7tjy+qizvts54LfG52YRmNNJXZsWV1wX3KxJIzr47cA/J1lWfz8C7Zt7ytqq0pA5KKb7WR+VJTUXKSUFMlcpBTmshBrspiiK9Bizfts50K5aiZn5v3QnauECibmKxs3brQXOnsegw6zDQyUZf6k1BVYoWSua7LY47RQ5sGvnVe7/UHBxAWZmXikZwgPPN2FIz1DRXvHji2rcWdHS0lbw4Uah/kYz2K+l5bc7v2nCtSy8FLosQt63lzX5FzGKUw/eXsqZSUN+Lfzaq6jXLIgFfV8DOhCWHSFGoertUAL9d6reagWeuyCnjfXNTmXcSoVJVZMo2Lr2jY011Zi69q2gj97rlJyCS9hJB8f1dW+zhRTCuU3nS//qz4XhXovn3U15rnQY1fMuZhLvKAUfPRAcYO6+471YWh8Gk++/gFubG0oKX3xkfdRl33NpSPF9LH+S5rnj7LxkUuK2fcjPUN4+EeHVCLOfK+jj5yPOh/Rr3tXyx9bluL6WBdCTKFQcjXcEKWwb4p9QG1ob8aeBzeFXkfzOSYfeUWt+/Xme5GXwgIvFfHzsYYdoyBlvBBiCoWSHVtWY93yJoxOzszbuioFH3Wpxabmc0w+8opaVwLzbXmVwgIvdQk7RoVUxgv5AN3Q3ozGmkocPT9c0HVVTMRJIaQU2iBlPtvzkVfUuhKYb8ur1BZXKYoco/mCHC70A9SEUJjr2BUTcVIIKYU2SJnP9nwkFHUpWwKltrhKUeQYzRfk8Gqvi7kKEQr7jvWp38117Bb6mADzi2ufT1mQ8DxdgiA7H5UU5n8pMl+Qw4W+Lkz9m+vYLbQxMQUXCw3fuxocLyb5SFjUtAS2rm0ridPvX5LM1uLw+16hbiBS6fA9pWIdFUJM45Tv2C308TDdIAp9KygV3fKRUNRcoPuO9XkmLt+FWOyFW8znz+emk+/atfcE3uweVLzIYWU+fMTExfI9C90vXWhZ6ONhUsqFdjX66Zb5lo+E64OiX/3yvbYU+5pTzOfP5xVNvgtMmMozcSrXNb0QmNnd+0+pCiF68YkHnu76F5kwIqVUsg1nK/PpqrnqY+VHVD2X/0qlcEC+ROHFJhYvZnvmkxRdvqtYbSwE8bzf+/jse//q5yVNJP9RkFIn6y8lQUDhgI+E68NP8r0GFQuhQVcBgLyen8/VVPJdFNu1Iscpn/fm059C+BpN83mkZwijE9NYt2IRYFmB7dHdSXNxLy10f/BspZjulXzGNOxnS3WePtKKulAy1wUhF2s+z8pXWRV6U8i2Bj077HuD+qOPS7EOzd37T+HohRE0VjtVtIPGV+/XXMZ3IfqDC6G0ign5y2dMw362VOfpI+WjLpbk4/81fVb6t/J5Vr4+ON2PNlc/r2xrkI8urP8uqD/z5WOXbc01vnq/5uKnzPe7pUC8VIg5ma0fWe+/aTzCjqm8ReX67I4tqzE6Ma3S80smhuHnE5nLf6Xiow4rufxohfTDmv5eLD/eXP28V8vv/VGSsP3SP1cKRYGv5pzo/Z/LeOT73Xw/X6hxQoCPekEo6mIvmDATU8w2FGtTflSV39WUfMc07Nzqn7vagfC5Pm+uFdT1v82lPcUey0Lt3yBFvSB81MX2G4Xxo7END//oUMEDDcXy4xUiwDgfwZVSDeDkijeEkbBzq3N35Oujn89KM4X6fj7cInOJWZj2QdCaMyVLBcl8pN4vCEVd7IEIswh2bFmN5tpKDI1PF/zAKCYfSNBmCKMg9e8XQ6kWSskUum25Mt8KWUfQxN2Rj+QTqJ3r8/xEvifM9+eTW2Q2geGrweroK36m9lz+W2g+6rBSCq6EfH3cQX+bjcunGG6a2Y5rsduWq12FfN9sfdlhJFc7C7WuTe8p1NzOVWbjSpnv/Y6F7qNeaDLf/uzZKozZtHO+Fm+Y98zVr1uMNpZCPEWX+TpwTO+Z7bNLIZjqJ4fPXbHv/auf2/c+daCg8/yRUtTFtDyKaVkUSq6Gcii0zEYJz/Y58y3FVjDF6HMxx7FULOpCCue40PMcpKgXRHFbiaGk3yhX8UkWO123vAmNNZWh8KiFKpBaDAxsKeBqCyVhxnk++1vId81Xuz9K6yGMlFJ/j/QMYderxwHLws67OwvWnqDitgsi4SVs4oUU/n10ciY0aL9QxCvFIIspFV7cQkiYcZ5Pwp1Cju18tTtsm0tJwemST9tKaf1vaG/GK1+/Y35f6mdqz+W/q4mjLiT+spSkFPtxtdpUapjhqyFh23y1fb1zDWaHec5sPleKgo+SjzqXXO2FadulHaQrpMzXWM8G3VHI8VyIc0PJ1fZC9G22yrgY4zrfyJ9CSpCiXhA46nzkatR903Gqs8EFzxcZTCGxxvM11vrY5JOgVIjxLFWiHkqY5A0/10Ih+ub3jCCOjUK7ZDgGW9e2FXRNlsrcLwgftUn8Jlr6CIMWQ5iFEnYx6f6z2fi654uY3M/XN5uNM1/+WBNRznzFGwr9rGJILv9t0NwWom9+zyBT4Z0dLVnv1eNOcw3OFcuHXSpzvyAsamkx8GeWgJptZtFsM5NM1otu4c0mUynftNV85UjPEO576gD6RiaNFk6pWA4m2dDeDFgWjp4fxkPP/CrU2BQyW6zUK8nnumHkk6pN8bPSTRzdQYeAX7vk36jQj54fnvX6KyYNg9/czyf1wYKwqOVpCUDB7sKkqMp/c/1NX3Smz7At710cwZ4HNyny/EKd4sWyDLgZABgtnFKxHHzFhZHGkzPYvf/UVY/8z0XkOgMwZxdAvnStYcRvHerrP2i9BrVL/o03JljWrNff1aigPp9IlNA4asuyIgAOA7ho2/bdQZ8tJo4amP3CznW9D4vvfeiZLsSTKaxbsQivfO32/DsU0D55BQTmvolNz96+cQX2HesrSciWn5iwq8Xwc4Z53mze65cLAKAg2P1Cix9WmAWDh8anPRZx2LEo1JwVE3ZYzHUQJIXCUe8A8D6Axjm3KE/RT8vZLuhcJ6Cf5aFPyA1L6x3rtMDJQrpPjweHX3vzEYn9LORz50tM2NVC+tuDnjfbz/l9x7TOSu0ms6G9GY01lYoxUt4eaUlzfJ/7ymblBsg3njNbKaY1G+bZ841PD6WoLctaDuD/AeB/BfDHRW2RJoU8gXNVefC7Ppk22boVi5TVOxeR/dM3cLHcEfK5uca3lBMm/MZn194TOHp+GKOTM3ndePJNppptsLhQhkexZevaNvzi9GXFGMl2mvYJ98joxHRgJjDHYa6V4E0B5kJJrvmVtwpgfuYvbDDxLwH8LwDSfh+wLOurlmUdtizr8KVLlwrRNgCFC3LRWm2sjuY9qabAx2ye49cu9i8MB2/YIE+QyOfmGt9iBhnnGozxDfTwppPnjSds0HAuweJc3yklbu59x/owk7bRXFsZ6vC6s6MFiakU3uwexK69J4yf4zjsO9Y3p3VFi//o+eGCc8SHgTQOjU+HGpdCSU6L2rKsuwEM2LZ9xLKsT/p9zrbtHwD4AeD4qAvVwEJZlWFOST/LUQ98FKI9Ydulty1XkEf//VzfHyboOlsp1vV15z03e2IaC0WuhqUWJDLIl7e4h6Sfr7tQsMD3Lo5kWfzFFv12NB+SM5hoWdZ3AXwRwAyAajg+6v9q2/b/5PedQgcT50MKRchUDJFt8wvemJRnPgo1n8/6jVW+CvxquFWKRahTCOG4NtdWKp/w1Zaw+4Kfa4hFcMOyBjW2Mh5SjL1Vyq65fCUomJjT9WHb9mO2bS+3bfs6AH8I4L8HKen5lKBrYr5XyHxxmKbnmzCmhbjGyrb5XctMv8/HbZHPZ/3Gis8IcxW9WhtMx+zOt6sh6H0c13yVdDH7EHZf7NjiVECKJ1Met+COLauxbnlTqArgJsnVt1LHuBdKFkTCi5/MNaFFSr4Tbnq+/rtC+XfzaVu+5ZAo+XzWrz3crGHKlRXL951rY+uKY74TffT3yfaGmWdT/+bah0IoeqJB9DVEtM4rX7t9ThmHs/FDz7VfpRQvyCvhxbbtfwLwT0VpySxE93MFISiK/W7T7/JBVxRKdL9v2KtmIRIGJHRLRvXZLtn3Ys1PLr+3DvPT0QOmtoaVMHOs9ztfP73p8/nGOfS27Xr1OI5eGMHoxHRoCKRJipF0YvJDz5baIR8ptXjBgshM9BN9YcxWSRXi3abf6Wnh+qIphvIu9gGVS9hn9nd0Yho9V8YxND6dBd0qFI+yfkDrsK1cgWLihWmRznZzh1EMer/Dzhf7wCrlutWaq62BbWOw0BA0LIX1JHHbQHZf/OZ3LgfY1UB2BMmCVtS6zNeimo2CNbVttnjfIAlr1RTbwmc/Rydn1IJPTKV8LTdddOx6UFv1jSsV73Nf2TyrRKewinOut4Sw8xVk9Qa1iRLUtp13d/qiZOYrNVseRHrWbK7DzW9+53KAXQ1kR5B8pBT1fC2q2VypjG2bJd53thIG5ic/t3VtG1461DsrhITMWOM7FbY2BNxLbpR8FW2uf/3aSgnDQGdqUz7rL++DMsDqpQSNU1Db5mvfBAnbTjcHEJxtOptbiUn8vlsKY+IRP6LqufxXyMIBcyXuLtVioMWqZBwkklT9+YM99rpvv24/f7DH93Prvv26p4jn1ZqLUiDuv/evfm63/+le+96/+nlB2pQvwX2Y9813kdpCVl3hZ54/2GP87HwXjL4agoDCASVvUc81KcKU2srfzxbvW4jTljAxE5NdvhJknfkFWOmD23esD5/fvNLzHX5OWtRhLNtcMttxKwnrRrNo/dqkz8Vc/KdSwozBbMZpLoG5sOshX9+9vh6B4ro1813XVwOLX/KKeq4TJH2lOlWqHy9BmGvuXKWQCy+ofX4B1qD3+22aYm6WUk9c8PPj5lorc/GfzoeEXdthUE75fBfIb84LMV6FOjRpZPHneZlHP1N7Lv/N1vVRTHeAvN7w53ufOmC8TunXrFK5GvlJUPv4t+/+3yd8XR1+zymEqyLslXkuV9urOT+51opf24pRV7PQzyz2uM53fdNCvU/XU4UaJyyU4rYcyDCDORtlEPSMML/PJbn8bPlKITcK/c3rvv2672f0hey3sHO1S37P9Az+7t6/+nngHIZ959U8WPNZe/L3s1Eaub5TaMVXyHEt9B7N9zP65wp5QBVq3IMUdUm5PoiBDVPpQV7ZgGzsa1i/mAn6NdtrVq7I9Vyel09asemK98hdN+HJ1z/AI3fd5Ps9P5SETkk5V7ibyR2VC/ce9M6ta9vw3sURhTEuhqvKT0xrxe/9Eo658+7OvPDeQO4ruj4Oc5W5JudICYuS0YuEhEk6CdsuiUQKem4YRNRcYZn5Skkpaj1rTJdcmYdB/rMgYHuhNrVUbMSC+r03bBYblf6uV48H8vxKMfXp85tXGoM0UvwSdvRknbnC3UzQvVwS9M59x/owND6NJ1//ADe2NuS1ceY16ciFYZ4eiANAFt5bx9UHBbFN7dbHwdSfufiF5wqDC+KPZrtGJ2dw9Pyw+r1MOikUE19QMosfbz3b1zcyie6BsVC5AIWU0KW48pFiseflYvIKUoqyfNBcGN9M3wNg/Fmyh5EDgQsNAI6eH87JKKYv4DDMakHJA2HHLN/PFFNyISmC5jeXzCdrot5O/TZ331MHcPTCCBpiEfzwy5lApKltJqa9MONg6u98zS/fvW55k/MLoXDl3/zQWYVi4gvqr996kOyA8WQKHcvq0dZU7UFDzXUNFaoUV9Flrlc/P1dB0Aka5vplOsWl1UolOjo5A9i2J4NMh8QxWhymOK9sn9yEuSLNfpZw0JgFfeZqIxRyISlMacZAftwbpooj+Rx4YURvpz6uO++52TPHQWiJ0YlpNMSinvXA5+969biv5Wp65mzgabNR7NLlRauZbZftks/ULfq5FsEFgtez35jz3YmpFG6IOWozqLRaoaWkFLVpwfC6k5hKAQDqYuYm+y1eIP90UN3/bYLiyGfuevW480HbDsTbyoU2m0w/XRnl2jDSZynHsS4WVe+fj0U2VzH5znmNfqGr1zd7Mp9DyHSoFTrmIN8HmG9lj9x1k+dQML2PB75ufVLIrcL1GpTVB8zOdTAbd6E0Omj88J1hceLS3TCbAyPXd/zasaHdrSjj5j7I29B8SEkpar/TnopS/s4UADh6YQQdS+sQTViegEouqzmX1WE6xeUz9YoifhMY5IM3tcfPvaJb9X548JcOn8fQ+DReOnwejdVRzzhKK2w2VlQYazNXIo5f0kAY3ywsC0fPD+O9C8NI2d4+UfJRQEExD9nHMH3LJX7+2LDKTzc8SMe5dW0bnnz9g6zbo99NU58DAL51DAvJTJkrFmUS03rJtf5Noh8y+cyjPu6cJ7qsium3LilF7Xfa88oBOBa1aYHIa1X3pYQx405KkFWgtyPXKa6jR+aCGJHtMSFb5GajxUyyo6y+CC6RrWvb8NavB5GygYZYJPQmMykV6X4IsjZzJeL4JQ0EbSb+bd3yJsV9DQANYl3Iz4edC9Pa80MF5epbLpF9kO6vsMVa9bbyeb84fRkzaRvRCguP3HWTeoapSK2OfNi9P5g5UO9v2D4Xyv9tWi9yzwfNhTQq9EBhPvPoa9SE4GGZq5SUojZJ2NM3F5JAXzBhrYKwWYqz3bhB9JV6G3VeXkb52xfXGv3d0tLfvf8UUjbyLvPkp1SCrE2/9ut/401F9w9L1wbHx88fmCt+MFdXhZ81qrtf5BjkSi82ueKO9AxluSx08buFUBFTSc+kbY+hYipSy7gNS2eZ1p1fm/U2BSniQs2FyT8dFj3ENrzdO4R4MoV1KxaFRoyEAQ0EsQ8WSkpeUfuJ3wLxs4JM16QwC0dfaLoSCTPhQS4Mk/UoCfeltC+uRfsSK+tdYfxt+frpKX7fk8/OBfsziTyApX+Yc0fXhh5UC7rtmNo8V9mxxVxAlT7LN7sH0XM5oSxTwBzT0PtuslhNAe8XunoV/n3fsT7js6Uilj5u03iY1qtf8C5XmwEv/ao0DEzvmQtHRpDBlst9xzb0jUwiPjDmYavUvxtkmAEw/pzPDWO2UvKK2s936wdY9/tbmGtSGDC73KD6xg2DrACQpfjl84MWhk7i5BeY8vP3hoVj5Qo+5fq8qd9hNpLu2tDrRIYVaWmZfK75KIwgJIW8Vbx0qBejkzPYvnGFMaaRC2Lopzjpc37y9Q+w58FNxmfr39UPTj+3Tr7KxTjP4tofNN8n++OqL4CTyOJ3syuEu8S0hsPg9k2GGZA7X6PYUvKK2s936we3k3/Tr9S5Jsv0rkJEyaUVvn3jCs939efPdmH4bRIT4XwuBZrvddXv82HHqRCWfz7tCvKPm5R4mMN537E+vNk9iMbqqNHy09uiJ7f4KU6ZUSqtSv0Qmo27Ld8xNt3+YNtYt2KRCkYCZugf3Q6xSAVm0ulAF0++68/Un7B7WReTYSa/4/dzsaXkFHUYX7Kfj08GDGBZeOnweU8ALJfMRrGEEbnRG6ujgd81HSjsY1ir1COGQEeufurX1SDkCT9ncgfNxmrz+85sMM1+/TD5Oyl+SjyfMfNrt+fvIYtGMKNUV8yFCGbm+m6uvcixaq6tBBBs1NDtUBW1kEzCaEjp3wlrCJn647cmc8ls1ux8SMkp6jCLyM/Hx+9RKZqSSoIgPcWcpDCLT25qeU0M0ya/tucb6NA3p/QfA2ZUgJ/FGeb5uWCJuoWUD6ZZjomOk/bzd/opcXmA3vfUgdB+Vr9yazqkM0h0dx7bqKc5h5Vch4rfYWC6/Zn896bnAcg6aP32ehiXXq7+5LMmc8nVzswFSlBRB/ls87UoTQMb5Ksu1IT4JZf4tV+HwHHxF6Kwpim4arrCSnRIPj46/Xe52qsflDrsL1eMgRvdzxrzk6D26fMehDKSFrf0s/quUx/Lmevhha5ePPyjQ3jkrpuyfMtyXcj1wDYwXhH2sNPfbeqbRLjkmlP678O6Ejm/+471eZ6bj8/Yrx2mv+VrmefThvlW3iWnqMP4bMN8z29Aqbh2vXrcY5GYrJbZToTczPz/oENGD6B1tjXixcPnlV9yrotCLjSTNSY3KNn1gnx0piBd2NsI33/6UgLx5EzWrccv/iCff2NrQyD7mR/WPUywN4wPk+2XlqTfOs1lOctgoa6o/QKrYYwZfc5zuY38Mntngy0OgpyalLf8jn7T6mxrDMUIWEzFaZrbubieZiMlp6h1mas7wmQ9SuIaebXWrZbZTgQ3My3qXIeM7nN/4OkuT5msuZ7o8vm6Ncbf04onuiDomUEWud/35GcaayoRT86gubYSO++52ejvzlXENejGke/c+fmyTX3Z0N6MnffcnJUC7Se51q+Jftak6GRb8glAb13bptZ7ruQkmZYubyz8u5+CzxXIkwe734GmB711V1fYBDbp0pxLUFLvs77vTIdQMaXkFHW+qcmA/yICvAv2gae7sq6R+uf8rJZ8JNf12fT5oI03lxM9THCWV9hcpE96wNaUkOL3Pf22wn9N13I/36J0KRFpEDTnYedOuoekK0a/VfH9vA3oB/1sDnYT/Wy+zwqC3/HQlxhrk9vIZCzkik34tdXP4g8qfXf60pjzP+4Bze/ydmmyqE1p7dKlme86kH3x67PppjIf7o+SU9RhgkZhBpTCBct8/I6ldZ5rpP45v/+fq4QJouXTFlqeuaLauQJC8h25SJ9MAVv+PagtugWca2z9Nph0KRFpYJLZzJ3JzaCPnf5+v4N+rlKoZ9Gd0bGsHnWxKG5sbcDnN680ElCZjAU/SKn+fD2o6Wd4UInqCnvXq8cRT6bQEIsomJ9+0NCiDoqnmG53+awDv5uJH8/JfLo/Kor69FnIji2rcWdHCx656yZfGlB+hgMXhi6UJ3VddaVSWBRezY70DIVuZ5jvyM9wUnfvdzgV9P8P24YXunqx/vGf4GR/3GHzcrP3/GTr2jYFhcolXNi6lcjn81mdbY2eDUor2NSWF7p68XbvEDqW1YdOXdfbQdmxZTXWLW/y+FFzCcf1ha5e3/GVCmfnPTd7fLp62vy65U1Yt2JRVl/82pyrXab25PssP+HBMjiWVHPjp1z19sg5ffL1D9Rn5Wf4/MbqaGBb2Z+dd3fizo4WwLLwZvcgdr16HA883aV4fG5Yll3sQN/fck1yPmggyHfpbTX10a+djGXxZ75z16vHPYdAPntrrlJyFrUcaJNPKl98MT+/feMKNFab/cV6tDvMBgnjN9avSUH/hj2d9Uw1+QyTkA/E5OPLJ1tOPutFl5VP93Ob2vLk6x8gnkwhOpacs+KhSylMhhkl7A2N/lnd/aHfbPJxaQXdmoLmu1CBMVrFiakU2pfU+cYo/NojYxc8FHMhgoKEe1uiWfxgtPp3ZJ/4L9t/9Pwwdr163DM3uQKss7G0daRY0N4qtJScos4l+Q52mA1BFrpcpPy6j1a3SvR36YsqCCsaFhfL4NP9G1eE2sxBm8l0tc+FmwXMREwmGKBsL4Nl+biA/CSfK21Qm/XPhFEcQZILh2x6Z655mYsfVFnFQjH7vTcodqEfivx5tu5BqbBlUDYoEP3oy++gfzSJx7at8b7TvSknplJZxF56f2brUtIPGD9jq6jiV/V2Lv/Ntgo5JUyF4KBK3/IzQWXdZfXgMJWH+XlW9M63Oneu54Z93uFzV3zbkI/ozw9bmdnvc6Z+BI15UN8L1adcv8/nu7mqy9/71AGnuvpTB0K90++5c61WHqZPfn+b7RqebVXvMP3jZ7j3TM/m2BdqHV0NwUKpQk4JskRkkMEvkqxfd2lNBBVpDWMd5LLO/KxKP8kF9fEbBxmcC5P44We1hgla6sk4FJPFZ7Iwgm4Zpn/nKkFjNtvEiTDuEwBZyS251pTfc+U6misMLKgNhXQPBH1vtjcL+Zm+4Qn0jyY9MEYgPNVpPkixMGLihCmmlKSiDlP2np+5nJhy8JciRdekUI/0DKFveAINsSg62xqVcstnMer+c1PiRz4L3e+zuRR4vpHnuUSn+d2OpXXqYLixtUG9X0+RzrURTYeDVEpzrU0o5z7XVXg2zwyq9KInt+Ry6wQ9dz4QBfm6B4L6E/S9oL+ZMMomg+KJz30Mu/efUmsv6Dkmkeu0sTo65/iARAAFuUsLJTkVtWVZ1QDeBBBzP/+ybdvfKmajwjjp+ZmZVNr5hQ/HLL//wNNd6L6UAAAVDAPmtgnCYEiDhMEeHdam406lSCUe1uLyU15Boh8WeuUcKtdEcsb5gg+5UJibSmiL1dBGE9OdvHHJALHpthNmYwYFuE0QMb+/5fPc+fB/BuGvTRLmphv2PSZ59MfvontgDGcGE7i+pS6nAZRXfEPcdvz2Xa4+UnTYIw3BQgSA/SSMRZ0E8Pu2bY9ZllUJ4IBlWf/Ntu2DBW+NK2EWKS3q+zeuwIm+0ZwLmpMDy8L2jSt8A0uUuZDBhFX+DPboyR1+UWYgnFIzpc1L5WX6jv5dEwcHnykTWIICb2EXb5iAn0mCrJodW7IJgwp51dfbnq8luRCl0P3R10f/yAQA4MOhCVwYmvBQ84ZxqwWJXtTAL6kqTB8lSqixOpp3W2YjORW16+R204ZQ6f4XzM04R5F+J2kBSiuPMLUTfaOhT1jpyw6C0/gRA/m1M8y7/SRoYZgghWGUmr5o8kl75XfXLW/yYFR1fCrLOPlF7IO4U/ge/SABsi3LXNdt+i51N5kJsZDvVT9MG2ZjSeZaK2HXXyEl35tFIURfp1/Y3I49B85icV0VBuJJD42A6d255i4o+cXvu7n6KBFagDdWE9SWuUqohBfLsiKWZR0FMADgDdu2uwyf+aplWYctyzp86dKlgjSOE0kMJ//fVGnZ9Hm/Z+UCvjNY1xCLeMD0JuGzdu094fvuoO8BmQCS3tZ9x/qy/sYrfJAvd8cWc5KA6Xl+3915z83GJBa5UG9Y1uBJpOCYSkWjc6fs3n8qcJ50CfrshvZmtC2qQTw5oxjZ9L/L/ur/7/e7fNoQVoKSn0zvKxR7oun9pv8vRB+D3mcSfZ2e6BvFTNrGNU3Vzhq8uzNnu4Mk19oJm1TEJLMXunqVNd1YHVUJPPIgKFZQMVQw0bbtFIB1lmUtAvB3lmWttW37mPaZHwD4AQBs3LixIBa3nyXkF3QKOtXoKulsa8RDz3Qhnkz5lnfn9/tGJo1geinSAtVdALNNeMh1Oufj+9Sfl4tLJRfigAtVpllLRfzexRG0L6lTikb6h/Vn+Y0VkCkQa0pflr5pv/RmKaZ5yOcGZGp7GKtY9seP68T0LPn3Qm18fc3kQuMU+n25xJMdKlAUej1NjuMvTl/GqpY6dA+M+b6jUH3ySzIrxI06rOSF+rBte9iyrH8CsBXAsRwfn7MEwcfyuSID3qy6eNJJWeXVys+ne9/33vJ8ThYaJerDtLgos1XGua5fft8NippTmeqc16a2hW23bKf0CbcvtrP4VPQ+Bb0TyBSINVXE2bX3hPr76YE4bliWQQKYxmCuvmnTfOT6vt6fIK4T+VndRRQU/J3NYbN1bRvue+qAIrbi7wvt1gizRiVjnp6YY3oObxoAMJO20T8yEZiYFMaNEWb89HJopphQsV1VYVAfSwFMu0q6BsAWAP+x4C0RMpvTSUdK+FnbLERKpID8LuAd5J13dzqWm9smnTtYWpe54FcmX7vf/weNix92Uy4WUyq8bvlLVrJcqeNS/Ba/7hPO16rQ38nUZyPRkxvBj1hAPJlS7heTpShhmdKPPVdrK9f3/W4QpnGRcFT9ZhJUSi4fJIQ0PnjI+a1bylysRD9r03OAiTJxYXzGHKdPrF6Kn526hEfuugk3tjbk3Ua/gLmfmBgOpRTDVaVLGB91G4B/tCzrXQCH4Pio9xalNa7ovqV8/F2JqZRDoLL3hOfvnPAbWxvQWFPpUXT8LhWqiZhm9/5TeOSumxRdpPxersl56fD5QEKmMP5BKuKjF0aM5EdcLNEKy0hYJH3Pz31lM070jWJofBovHXIqjMj3U1nvevU47vveW4GERvoYk//4ha7erPabfI18NpDx1W9odzg12pqqjX3dec/NuLOjBbvuu0WRJMmNrvvnu11aUunHDutT1H3v/Nn0fb+/B71LGgB0RTXXVmJofBqJyelA0h8TKVDOteQecg2xSM51GxTXma2veMeWDJHS9o0rlC86zHzwVnwlMYW3v/kZD1f7wz86FKotsj2wbc9aMfXpSI9Tei1oH3DNheUJmo2EQX28C2B9Ud5uEOlO0INhgDkxRF4n73vqABtufLbyT4sEmSD4mn7VlydrrquVyX9t6l8Y604GOG9Y1pD1Wd1/nwszrSxXH35u3hYAx71g8umbLC6/iiV+PtIgF4xf4lOQC8zkn/crZBskuTIyTfPOq3zf8ATaFtV41q/fPOjWmLyZ6Nh12TbJiy3/zv6abiJUMEFc3lJ0t4PJVxyGyEzfQ2ELPYe56W1d24ZfnL6ck6cnqD0UPxcZ90HP5YRxrRbabWSSkstMNLkT/BSZaWCDSh/t3n8q45+27ayATxhuXT8xKS3Tgnjg6a6s/unvyPWsk/3xrDp7uvLSDx19rLjwH335HTTEosr/RpEKLpGcQXxgLKvqimn8TRVL9PbLf3WYoQmC+dKh3llnLNI6z/cabzpkT/bHjQcHn026zv7RpEquAvyVu1+Mg3Opr09+R/pDTSXL/DDCcm8Bwf5vPos3K+nTNt3ecsEQ88Uqs708zFn0QG/vvmN9mEnbebkd/Pa030Hwdu8QWptq8KXbV+WF8y+klJyi9vPrhh3YIMUqlQ+rc+sBrKCCoX7iF0wwtSXMItXLEult4bt0q1V+zqQQdSVDtwAAPHvgjCdQSgWnPzdXX/z8eWEDw7ql3VxbqfiL5djq7co1R3xu3/AEBhNTuH/jChw8c9mXq8F0yFJB6RaurtRNGHc/w+HohRHfIgimA5xzz5sV2x409/Lwo7XNlOpcYyotSir4vuEJ1FZGsLi+Ci31Md+17HcTDmv87NiyGm/3DmFofBrffe19xN0s2CClbzp8gmI7Ukx+9dHJGcSTKaxvqs7pqy6mlJyiDnJD+H1Wl6CAiry6mwJYYctLSQkKJuhQslCWoQiyAMji0/Crs6cfFrLdprR8eXCdHhhDPDmjlH9QsoAcz7lc+fQDgMoEyLa0TQdFPnPE777dO4x4cgbff/OM5zm6BStvHKTX9DtkeQhu35TZyHJDm5K3+Jx86HWlm8ovWMznjk5MY9feE1kGCa1tU0KTaQ3priN5uI8PTWQoBALGXD8wwt5qNrQ3o7WxGvFLCTTVRLF+5aKssZdrkFWcdBedPGwk1Na0/uQBNRfK20JLySlqChdI38gk7vveWx6ERq6JllYZcY9BkXDAmbSeK+Nq0wRZvvngXsP4uHTh5qJP+/RA3PmD63fnyS43f9BhIaus6LcPLloJPZRjqLe1UHhRXSkA2S4CqezYR+mDJ99CrnJk7OtzX9mMF7p68c2/P4aZtI2GWAStTTW+h7NUSk++/gHe/uZnjPPGQ9DkoglCGOhIGTk2uZSGbjHKsZDwRb+1LP3OEjGjryGTcUNETv/IpGe/6OtCP8j5PhMyyw/r3j86CQBoaajOWoe6lUzXU2IqlXXDeLt3yHF7Cved1BNE2LBti+uqEK2wcNv1S/Dpm1sLsubnIiWlqPXJIrYSgIpih7GgdEslzPeCFJ3ps7q/10+ZSYskDMcIhRYR4EDQmmsrsX2T43umstILsfJffTEFVVmRbX37m59Rv/ezhvpGJtE9MOYJxs4WTkk/Z2dbIw6euRxYOEF3iUjXSPfAmK9VbOrni//u48pSBqCQJSZ30eFzVwBYeOSum3yfzc/3jUxmWXRSyeoWLKVveAIPPfMrPLZtDW5sbchp1equDulC6R4YQ8fSOnUImW5E8tAzzXWQG8HPJSZvfdLQMI1TLg4b3hYYU2qurVSGmlwPOs9LXcxRZ3WxaJb78Idf3uwxfth/HfvPtkUrLMykbbx4+DwOnr2Co+eHcfjcEFa3NswLrakuJaWo9cHVF6hfMMck7Ytr0b7EG+kPUpByc0oLaHTCtfiEotUXuJ8FpL+TxUVN35G/G52cUYuwtjKigk26stItLL9DyC/A50HBaNdFP2uoIRZxfiFQNUGWki6mTWIq7eV3a5EWtfxXXl9Nh7L++8HEFOLJGYxfGvPUfpSW4b5jfRifTuPOjhajAtWDZXqCFNtLt8i+Y31ZQT7dar/l2iYP1ziTU/pHJhFPznisX32NyQM8fimB9U3VxniLPl+mOc/b9SjY6XL5puUa4GFgQm8EGR+6bgC8N1EFz9UC4Ppa0LH/tNQHE1MYGZ/GI3fd5ORdABif9mL251NKSlHrvln92uUXzPELgMiNL/2Eps3d2daI9y6OKIuRSlBarccujmAmbavnUUwHDJCxXEwMb6bFzN91LK1DBYA0nMXB4qFyQzJpJ8j6odzY2oBbrm3K4vJl9WcAOH0pEeg+0JWB6QD0qzItxbRJ8uFjloed/FfOLdsUFGB75K6blAvk2MURnOyP+x6y0rUUrbDUO/R5l4qCImMDplvK6MQ0ljfXKKUgub7l2gG8CA9diUl3kcn3akoXN1m2+pz6GTemAHPHsnrAsjxxhgee7lLJVTJQrcehAGShN4KMD1038HccNxKasQ367ZPxKL3v8ia/bnkT9h3rw/ZNKwH0IjGVUrSmpnEoppVdUoratNCDNhvFbyH6fU5idwHHLfKL05cxk7Yxk0p7rFQds2p0jRgOGInDNjG8+fkNAWcDuSzbqK2syGKwk/70h390KCuDLcjC9yx8t71Ohl/GWtO/r6fOU0G+0NWL7752Aq1NNXjis7eqMTa5AEz99kN+mMYnV+DQ9HdTRR/268bWBqy9xjmcZ9K2CqL6rR3pTtt3rA83tjbg9KUxNY653CLSYqdvdXAsiQtDE+hYWocD375LfUeuHfqD62JRI4TPJHKd6IeX/nfdspXPl+PFMTatKcBBTNFd0HM5oW5x5OWYSdv47msnPD78oD2gtyesQtTXAdeAfvv0gzACmVtQYiqFoxdGArHiudZloaSkFLVp8em+qzAwvVxwPpMFx1Of/NayTX44XP7utlWLcXogjkRyBi90eQNKG9odhjc9cUFulvueOqCCIvwdNzOArOvWrr0n1EGjc2vIMaPbRud1oPBgpIXOA0FHmcgkFpmyS993XPiIdReAruRNECjT5jP5VeW/QWtAKiD5N5Ny6Vhah8HElHILBV3/5TVZ95/muu5TpJUccc93+spN0lhTiZ333Ky+axorv3E0+X2l+CGsdOOEEmQM8RAjtloyXN6/cQVePHweLfUxY2xHb7+pzF4u95rfnPu5T4LWE29B7YtrVZaon7uDhtjbvcN4oau3aPC9klLUJpGWjN9g5YKJmYD3UuHwd49uW+PrmzO9g1dfRpTjA2P47msnsny+QYvC5BrxC9goEf7haIWFnffc7Bu0oaVtwodTmFavUo+12n/Sxy0V0iN33aQsanmdh20712BA4V91a4r9nQsxkt/fdca1oBtZkIVmMgD4PKkQ+HsJ72T/TAqCvtXbVi1WLgFdWelZtCwfFcTjoo+jae/wPdIdYbq9cE3qN0g/Y4hrhIaObgyd6BtFZ1sjBseyucN1dxMRLKd+M4bx6RT6hidQF4tmcUAHxSAofusmaD3JOeIh4xcX29DerOIdel5DIaWkFTVP9pb6GNqX1GUpOtPiDrIsgNzsaWHqNSpxLd7Wphq02jb6R5OoqYognkxhMDGVM2EHMAdFpJi+u/Oemz34XsB7VZSWCi1zP6vS5I/l5/izdHdIH+qG9uwCDNzkvAZ3LK1DNGEpa0paRPKG4+dj1y3yMCL7os+zHMuwh7u8QcnUaR5cpuu0Prbyc9Id9KiYPx0ayPjB4FgSsG00xKIYGp/GQ890obWpRrlD/AyBDe3NSoFyPXM83vr1IFK2c5C+9+27shS8TAyTcR6/saEVKgt5yDJ40r2ox5j0+SKCZXza6f/F4UmMT6c8QfVC1cT0w1JzLgmpDSoL6BesL6SUpKI2oR/WrVgUGJjSI+G5rs1+E/vSoV6Fic2lGKRPPRO9d6zQkfEpvNk9kdUWXUxBkVyyob0ZX7rjejz5+gcAssdBLr4gHzFRNJ1tjVkbL1SkH2Z0Bq24hlgEddWV+NId1+OlQ71Yt2IREskZ5b/mlf6lw+cV9aqOe/fjDjGJ6eY02w3sd7hLlxPbxs/4rTPdYjQZF/qVfevaNhzoHkQawBXXl71ueZOKTcRdHmbpcjKNg57oxOefGUzgwtAEWhtjxu/5rUm/LNygcZZrQgZjKfKmwqC+zBxNJGfQPTCGxKQXs22iRMg3sJfLcJEsk/oY8R3zkbFYkopaoh8iFpCy4bnuh/FH6Z/VJ08PuKi/a4HBIDFdhf1gY1LCBkaCbgwmMvPOtkasf/wnaKmP+RKqy37zGX7FfsO006TQCI0EHP86rRKmIAOO31zWXZS+QAAe90oYayVMGn8+EXrTzUoqHLIoPnvgjPJPSlSNn5vEz7h4u3fIw6u971ifCihf21yLtqZqtZbIvaEjECj6wSD/NfmFKXpswiQ8rEwcI7K/OqpKBhcZjDUFJ+lGPHj2iooN7Xr1eJbbgxwcfSOTKtA+m8CenGf9tkj/vTzoTO+YD+RHSSpq6WNN2Y6fjNYXkJ8/KtfA6n83IU8oufyIOtDfjys37IIKujHcv3EF9hw4i/s3rlCb5P6//iVm0raRXMr0bKlwuLFMY6MHcIKQOLy6ygowMlhJ2NTopGMlybnVx50/m6CFQf3x67feHx02JoWWKAOodCnpkML+0aTywUcjFZ6DwjTPJqOCyv/o+WE8/KND2PPgpiz3gxwf3do13Wr84GcU0wGWq6K8bDfzDeTa1mM2Oqe2HozVuVcAJ2koPjCm2mBaTzu2rFbQ0vjAmEoLn83tSb9x6GOiQw39qh4VG/lRkoqaIou7ho3Y6mL6bBiLwyQmxSnZ+PS/00J5u3cYP/zy7yolZyKyD9N2uUm++9oJzKRtPN/Vo1JcifHmDSTodJfPlL5myZdABarjbfUstKDnciyZ7EFqS5MVIjcJRccq8++6X1EP7gX1mf2hz1S6VUwJOXQvANlICfrg62JRXBia8PA8y/nirQ3IZJ3S/7vnwU0KZSHfJxWyX5D7ha5e7HzlPaRs57nbN63Ek69/oG5VehBRHx95E2mIZZKr/MQPKQLAE7OJjiU9iKSta9s8SCaOL/3PLx4+j7e/+ZmsuTUdDAAy0Eh4cwCMt+QA8buF67cz9tcUzJ2tey0fKUlFneuEMinTXC4OKX4Wh9yksgoMn2dSnLrVA2Q2Ji2UeNLhX3jla7cLXzYCAxSmttNaevhHh9QBEU+mPIqlPhbF+aGJnK4b3wPJ4PrJqoYekIWWCxqZ74HIdiSmUh5eE1rG9Nny/WH6bEI+mN5t4uEw9WdDezPu+95buDA0gRuWNXiwyLpSA5CF8jnZH0fPlXF8YfNKnOgbzVIaOs2olCdf/8A5mN2xonthJpX2pKz7uTUeffkdDI1Po8Jy1hKTq3KJSTmpikiWhU/dtAwvHj6P7ZtWZmV10r01ND5thEfqvmY5hpzzeDKFiAXEohFPDoCcQ7+boHRPcp9LMd3OgnivZ3NA5Cslqahnc0Lpvr5cdIaM6u569XgWVlMRuADqKsp3yEkwBQJ1kH1DzEGBULlJ5a73zy8CrbtNhsanEbGAtkU1imaSv29fXItVLdkImbCyfeMK9FxOYPvGFb4HpuT8DpvWn89iNrlTpFUvLWOOhfRV5hJ5SBB1YXq3n99VImvUmAS4zPT+6PNP5brnwFk8fu/aLN8tFXvH0jqPf3rn3Z145K6b8J29xwE4cL/E5DRmUja+sHmlij3s3p+BXJ4eiHvGiRju6mgEG69rzrluTGRIct1yXzGLd9+xPuVeMBW9MK0Dk6LV55yookgFFBkVcxgYkGTCCuDeBA2uGR4eEknDgsnSig/De11MF4hlB/ijZisbN260Dx8+POfn5BN0e/Tld3B6MAH39o91KxYZAyLSQiGJy9Hzw8oHtuvV4wq/yUAmg2Bvdg/izo6WnJMQpHDDXEHl+2hxsE4ccZ1crA/fsUphVGXCTj6nuskvLceDrGQAlIIA4EmK0H3SfnSuPMTCjKNfGyVcjjECAIHPnG3Ah+1lsFP3lZostXzfoTP6xZMptX5lHxtiUU8CyrrlTXjl63cY2whA/Y6GhgzeUgGe7I97skv1NamPmbwd0E0i1y1vfFIxS46cMOPDPcp9yH7KNsnCEuy3/q/sJwA1jh3L6tHWVK0sar6HwjHT90KuOZ5rUNGyrCO2bW80/a3kLGrTRADZsCaJr913rM9TUQOAb0BEWij0nfVcTqCzrdGzOCoALK6vwuRUOisinKvdMuIt/XJ8vwmqRYu4IRbB6OQMblu12OPDe+XohwCAFw+fx54HN2H793+BmbSN//zzM0jZmcwwHcERdDD4jTP/5c1D8k2wDwCykiLYt6DyWrP155muxBvam3HDsgYcPT+MBh8EhGncwx4Q5OJYt2KRh/nQL8jLfochp5JC99eTr3+AulgU8eSEZ/3esLRekYJ5FIu7ruT1nG3kTUdW7qHyYYr/271D+OGXN2P9ymaF/5ZjbHKX7NgiKENd15deSowIj5b6GI6eH1Zus6BK3fo6bazJ4Kil20veZBisDyLqYt/v+95b6rDjgXSkZwiNNZW4trkG3QNjqK2sQKSiwkh1HOibdyXInTdXKTlFrS96XQn84vRlPHzHKuw5cFbxBzTVVKICQFNtFONJB9R0cWQCt3zrdTy2bU0WuF5ePXe9ehxD49N4vqsnExiEQ4h0KT4FAAoCFwRd09utIt4aL7BEZMjv0EfHbEJeHXWLmhvv+qX16B4YQ9uiGlzfUofOtkY839WDuljUkxwklQqVMg830zjrLgryPtOqJiTsZH9clSjiwjcpDCm5Do1cis2kbKVfNEhkXOKJ1943oj30mxAVS3NtpYcMSj9sGB/gbSaI7MhPZNry9S3e+SPqQfKQy3ZKBcE2kmbgpcPns2gLmOIfT6ZUUJP98cQHtAxVPkNShr5xvB9v/XoQ9bGMKmFfWuqqFAugrtBz8dHIElh1sagvyks/vHXCLh3RcsPSOqWk5Q1Dp2DQDwWKX0JcsSF6YaqQz6vs2OJU9H3krpuwbnkT2pfUqd/TL0UlHa2w0NpUgwvDk0gDGJ2YQTKVRjKVxqV4Jq0TgFI8APDK1+/AK1+73YObbm2qwbrlTehYVo/lzTWorYxgaUMVKuAEPXa9etzznF17T3iy0GS7efWCbXuqZJPQ/bSLcd6xJVNxet+xPgUPbK6tVP6wJz73Mex5cBOuJKaw58FNagE+8dlbcWdHC/79J38bAPDTDwYQT6ZwYWhCWTpHeoZUu3Zs8WKvZXtNFZR3vXocb3YP4tkDZ9BYU4knPnsr3vjjT6hx23esD/FkCm0ulSaQUQSEOZlcO3LMKNyk+u910atuc3PAsozVyqWo28H5Yew5cFaNg187qFj8qroTuXGkZ8iTlbdjy2qVQi/TyaVwDcm/cT5uu34J3nPZ/OTv5aHHcfZTCEd6sotNSNl5d6eRrlZ/3/ZNKxUPumw3kAkcv3j4PFI2cH5oQq05GiN11ZVqnLeubfOsM33Od2xZ7Ql+cn3VVUWQmJxWKCl97ORzTOPKv9dVRXBnR4vidOdB1hCLeHi+/cbzgae71C2e+1X+nWs7n2ro+UhJWdT6qcSMtUd//C7amqrx8B2r8OLh8x5/7cEzlxGLViA5k3ZdFSk01VYBAEbGp3H/xhVZNId6EEgPjjzwdBcuDE1gKpVWSQdU6Jx4QplMVo0ffpqbIp6cUUFKHVkgsbr8vum6pawjF05XW+mcuQ2xaFaNQVod9G/TKtetMDkHtKAvDk+i+1IiCycurckwkW5TJJ3i5w7R3UkMJLGSCuc0iJRfCq206qoIJqfS6hbjl0DF75goWP0qqPBvNCp0hAC/Y5rPHVsyWHjJjaJbjSaRQT4gU2xC5h9QdKvYDyXBOZNkXNJtt+vV46iLRZGcTuPa5hpsXdvm66+mIRI056YKS6zEDkAFJnXLmxauaVz1Mmk6mx7XEOfJ9Ay/Wz7gjS/kKvY7FykpRS0HZM+Dm5Ri6x+ZQPfAmPo9FxD9sQwa9I1Mojs+htamiMrk4jP9ap9x4R89P+wBzss0aAZE6ApQPljXcs2FCKCQo+PMYCJrQeptyrWolbgbU89ek8+WWGRWccnFi8LxIj+3hOJJZA1/d+bSGPpHk3j4jlVZSApTHyRjoN94SRx6PDnj2Vz6nErLys83TystnkwprmGTApJK2yQ7tnipa6W7qG94AhErm1uZIi1O/W+7959SG76ptsoz1rkK0crDgwdXkDtIR7SMTkx72PJ4wHOt80Yp3XaS3uGVr92usvikG80P4qjPucnXzTHV+Wo4B5zTofFpFRDVx1UmtNzY2pBV9V0e0tLVJ29DJIkCgPYldR5E2ZOvf6Dm7PF71xatSnlJKWq5MHbvP6VgYDLg9fCPDilLiH7ZxFQKO++5WS2m0wNjTrkokbQRZI3Qenz34oiiKgyyarODMsPGCskUudjqqitVtqWfNQMg6wAwQduO9DhMdXLh8X2m/slacn43DN0CkcrgZH8cvzh9GfFkptIF20uSnz0HzipF7YeGeODpLmMxBfkduhAAoLUxhvWLFnmQLTIRyqT8dMuIn+lYVq/QPsyM6x+dVPUk5WEUT6Zw+NwQxqdTnjJMABRjmsTC796fwcg3xCLKbWdSqLKoBUUeZrv2nsCFoQnEkykkJjMVX3TLWZLh8/DwqyZjagvHqLGmEvHkjApm82Yik3F4WHJOZVBRbz+QIQoLsi5Ntxl9XBprMn7uHVtWK8v9kbtuUvhmZinq4yotbhos65Y3ZbnrZKKXTq5FkijeFOTzJYNkMaWkFLXp2s8rVkt9DDMp23ONeuDpLk8aKeCUrlJQG8vynNx+gPeLQw55UtqGylLTAxVyEfKZn/7f/wkAMDVjTkag6NaOJDCXVzydHIYbgVl5uuUnr5kmq5if6x9x+ndxaBwPPfMrj3Wqt1knpZKWDa0HiYfl35947X3sOXAWD9+xKqsdh89dwfh0Gn3DE3jicx/zWChBVbAlXntDezPWP/4TdZPS05Gp/AB4Un09FT7cDSeLHDiHbKaeJMeDqcyT7lpiGaZHf/wu+kccBVpbGfHgd7eubVPKclGt4w/ftfeEoihle2QwypT+vXu/U6EEtq1IiTgnEoXDOaQSq6uuRNzlPfe7helrg9YjUUZEalDB07fPohnSrSbdJ0D+pbxke3SuE/3vEknEn7/598ew9tqmrDUpRVrUQTw+gwkHOPB+fxzfEsYdxS9A/vnNmUNRJ+kqpJSUogayr0Q8BQGodF15+vYNT+Di8KSCLDFIErGc5A0TDI0TLRNbCM2RfkvJ4/HK127PskxYITmZspVrQFp00gI00UbK/upZkR3L6tUBosOwuJl5VQyifNy9P5PmPj6dBpBWASIZEFHis5jl+0wk9I9uW+ObPHL4nGPhXxyeNGLFOW4Sf2viqaD10lIfy0DH3OIIOpKG373ve2/h6PlhdCyrzyKBlwcMuSbkfHxxz0GMT6cRi1iIVFRgfDqFi0Pj7jgCkQov6RSRPnHBogjbxta1TpHcw+ccEqEgkh8PJM7FDhOlcfpSAp9aswwRC1hSX6XcAbq7Sk+39lsbVMJvdmfoPJPTqSx6A13pP/ryO3i7dxgn++O+MDuTv98kO7Zk4H50P8qbpQkeebI/rvzCsG2P4aOLfjAymUtHzvQNO3stOZPGs2+dxRt//IlAfLyJ7yaIiG2uUnKKGvC6Cnhtb4hFUVddqSql3NjagF2vHkf/aFJZ0CQYkpFZEwyN8DRaTbWVFVjd2uhRolLBwbY9Zae+dPsqVd0kYgHXuzhXvoc8C3QHkMcgqL8mX6PT7wgSyRnc9723VAUYIFtp6+4Ted1nogStjqCKJCq4CigYGw8a3cXiN2f8DJUeo+UcFxMZvURZNNVW4ej5YTz0TBd++OUMuuHG1gZEIxXGmpZU/Fn+XxHn+MLmdjzf1ePJYjzRN4qZtO2p6gM4CjtS4VSurIpG8MMv/65yd3UPjKEhFsFj2zpVJhyRJO2LHaRPYiqFG9wstydf/0Ap9/6RCc9NRm5ySTsg0RgyqWTvu31I2cBAfAoD8Sm1biTkVM4t4CXa1w2hzrZGvPXrQVRGLJFQkzZWI6LQ7fOdvcc9XOEmjgzTOpE3CB0LLy12AB5oIvd8YiqF1qZqjIxPKxed3zskuVb7krosvcCU9JQAv/AGarLm9QAjf8f9ZjR+CiAlqagJYwO81ztyGusKTSqgDe1e1jqKzpTGSSd9ol7uSi5+bhS6WWSUdyZtqyDeQ890KasEcFK8E8mZnBSd+nWUZEHRCssTSJLWhtw8tBr0lFmOkczQotKTikK3HAh3I5b7+2+eUXMhMxVlHT85H/Qf0row4X/ZDjnetKw+dK0b8phwvon64I3gpUO9Hg4Mk/935z03K+Xx4uHzag7ZRrphTIiRx7at8VCsSutdrrWHf3RIBQ9JisRbw0tuwNsCUFPpKHepWPRECrnepSVMVw8PBRmslJbxwz86hPs3rlAUoF+6fZVnvnUhvG4gPuUEIOHEMnSXjrQoaQwlp9PKBcE953fLM611iYXXb6OmwKFuxAAw8sZLwwVw3KFD49Noqc9k0DIhKDGVUm2WqCj5XpOlbHIt+Rk/hZCSSiGnVfZ+XxzJVBq1lRX4m4dv8wTzePU+2R/Hd/Yex3TKRmWkAt+4uzML5C4XiZ66LP+ffnATpSS/T4s6lXb8lfrE3tjaoFwltZURT+DJ7/ok+y3fJ7MueaDI4JGeKi03OQMvVGIy5duE8pDfp2tAJtkwIzJaYWHttU3q0KCwLZw7WQRYT+PNleTy6b/4meLRrgBwTbPDZcJ+y2fJTcEUY5NVL9/FcWEbaysrMD6dVnGNoBR06XOlm+xTa5Zh77t96lAlfFS6iKTrLp8Ud7/1yexE/iwViEzQoQUo58c0/6YCxfpz/NLnpQtC/5ucnz+68/qsAHPQejCtVbazqbYKV8am1C26tjKCv3k4G7MvA+ZMy5e3IAntDJNFGpTQotNSBPEMBcmCSSHXT8zVrY0eC1AiQgCo6+R0OuXBnZpONv0ElIEUAB6LhBy6PJG58d/79tYsN4W8SsWTKUQrLIxPZ1jIJD2iX3qx9IsStkY/MNNc/awNvU86qoJRehPKQy4w6QckdvVKYgr/2/94S9ahoWcpsg9E3vDvRD2YrAzTHNVVRdTf03Cq5FwYmkDHsvosP6S0wGX1dzmP0qrnfO2852ac7I877giViWobA6v6GHshbGl1iAEOHE9ysBCrrtBIAl4W5CYyzancF7IIg44p5sGQmEqhpT7mmZ9Hf/wuugfG0DcyiTf++BPqPfptR95aOH7SyNDnjZZ0Z1ujGnP6whVK6sBZRcUrfd9+CBSuGUkpSlfjxPQkHr93rapNOj6dUjdh+Tw97iOTvfRsxDBKNchalvNjQvMUQkpKUXMzyJNJDr6OyewbnsC5y+NI2TYWubhT+Rx5ndU3gtzUfCaVKTl0pXJ79OV3FB2jn/IHvNckE1cE0R1yEXosAA22ZvKF6WLa5BxHCavSlZFcYDJNWrce5NVSR2LIwwXwQpl4laZrQm4ck8tBKvq6WBSJ5AziA2Ooq4oYeRUe29aJ7752Aolk5hlyHmUUHoBHEQyNT8PNEcLG6xZncUSbpLGmEo9tW4NnD5xB/2gSn1qzDD99/zcqgUYSZtHHK/v16I/fzRCBueNO7L4UExKEbjg9qCYDZVzTEt3CvtDvyn910QOS+tz7pc+zfUzUoRtkQ3sz/ujO6xUSyOTvlXOiP1caZTu2rEZLXRVGJ6YVf/hj2zrVzWLHltVeXm43+C/3hTQydCx0GNFdhfKg1WMExZCcitqyrBUAngPQCsfQ+YFt27uL0ZgN7dm0oTrMR27YtkU1Cre6pK5K0XvqStgvqCEDTyZooJyQ0wNjWZWGJXxQWkd6YIXJFfoVVVfGMlHBZPnLtNlclkBjjQOlohtCr6Kyob1ZoREmZ9Ke9uiKX4p+cJighzKTkK4a0+2iubbSQ26vz79+HdZFJbC48EzePGQVlpcO9aJvxEHncK6JB592qRYZE2D/dDinbvE98bmPYff+U/jix6/DlcSU+v2JvlFPMVl+/4P+OAbiSdXuhlhEuVt0wiHTGOvjInHbMpmDiohFcGVfHtvWGVjSTMfPhxWiozh+zMbcsWU1TvSN4sV/9/EM5h/+/l59zck55H7pWFqHs5fHPVBFfvehZ7pUQPBU/6gKvstbqzzEcvVJ32M69FAetI01ASiqAkkYi3oGwJ/Ytv3PlmU1ADhiWdYbtm2fKFqrhOgnrQ6L8YO9maxqKTLwBJjB+XKDSL+xFOmDlBtDohj0IJ9eGVp3XUjRDx0AxnRfvW8m60iSrzfWVGJ0cka5j0xFR00L1s+FlJhKeTgTTORBenAmF5xJuoSIjZb+WVMCC8eY87DvWF/WtXT3ficDsAJAdWUED3y8XRVSlW2RmZFf2LzSmKqsW1O6O0xa8QAQi1aozEjOQS43nZ9/VI6nRFvo9J5AcAHWIz1DypUgSZz4NxMtMNsr0VEdy+pRVxVB38ikwuuzfRIdIp/vZxDIICsP9brqDAeOTpPQ2lSjCv6OT6ezwAEcLxoJDz3T5ctbnysoKAmj2A6V8xBQb3IuklNR27bdB6DP/TluWdb7AK4FMC+K2g9XzSSQoArepy+NOQxhhuul3yL3C7z4LnT3yq/TbMpFQUIY/p1IAG6KIAtWtlVed6n8TQpbV576c2QK9rrlTco9wuu6HjjluJjmg4cZDwG5OfTPyqu6zjMSFOxiwIpwR8Drq9XnTB87/Voq5yZWWYFP39xqTHuX3CzSpSHXDv3ebDMt0862Rhw8cxnrVizCdUtqlT+7KmJh86rM4Wlqtz5uJvildOdRmenop7Aila1O0qTHjXReFd0tI91NRKVwf5kqyQcF6YDsQ8sPHfLEZ29V72GwV8/k3Hl3J/Y8uEkF/U3K3PROvZ28ya13Oa17LieM9LSFlLx81JZlXQdgPYCuorQmhMh06CCRi0+/XkrrmEqTIH9J4PTWrwdx/dL6LEJ1KXpBW4rJlaLEnczE5LSnlp7fgqWLRQZ72hfXengvfnH6Mh6/d61S/AAUgkK6BUxKTQ92MXADIAvz7CdBLhr+zFR704b1s2K++9r73lqQcFwHMtDFMeQY6VdW02HevrgWMykv54r+XRkI1BEWABRpmGwzcbukzV23YhH+8g/X43dXLfFYlfrcmtAqcmwBKMqCvuEJx4fvWrmyIonp+p0LUaHfTE3zKt9FZUwlx7gF9xJzC7hvZCFmXXJZr3Ltm9avnGfuN+7ffcf6nDkyEGgB2cZVkMjqMI9t89LCmuhpCy2hFbVlWfUAfgzgP9i2PWr4+1cBfBUAVq4M7+PyE7+TlsiA/pGJQKY0ufgA77VYRoB5nWuqrVRX1XXLmxRGutvF3OqBP92qMYn8m/weF7YMLMpqzSZuBgk10kllGMiRCpAHWW1lJGN9G4Is9LdJF9D9G1fg+a4eD2TLhInVx8LkoqG82Z0pBCvdR7R4BhNTxoK/TTVOEsbS+ipcu6jGo8z0Wnz6POvv8FzfNXy5brVS6RGv/dLh8x52Rd21pAdKT/3GOSTlYczirSafdBjuk117nUusU/k8UyiDBYPZLqZjywA21xZ/5lrg8+WtQH+3/Jt0ReiGzbrlTSqQLOlvTUlFfDbLZplIsPREKc5rrhuGZ8zc5C0WHaYB59w+6rPeyTnIWkeClVAiYII4SgopoRS1ZVmVcJT087Zt/1fTZ2zb/gGAHwAOjno2jdEXpakYp0xg8Av8cMC44Z49cMajBOgjZkoy4EDBdmxZDyDjYvjuaycwNWMr9jCdbyMo80pPsNH9mkCmPuHQ+DRmUnFPRp2uoOUmkAVIN7Q34/F716r+8HuUiGQcN1zL5DVPboD1KzPpxhxvEw2mTCzQlS03IKvjUPnx//VMNgAeH+mRniGMuM++trnWsw7kd6k0XjrUi+XNNXi7d1iRawHZ1/eOpXVOxqdL5sXAqnQpMcCo19WjAuSYSQUmCY6Ita+rrswKvpqoOOnz1C0y6eqTJGXEyQNQySmjE9OorYyoaz3XlqTkzRCXxdVa0ZkD9fmVf+NBBMtSN4qOpXUq2ceUbCZdRXqBYvp2TYkrslCvKZszTIEGHaUkvxvk+tDjW5IOWbaf7zYdwIWUMKgPC8DTAN63bfsvCt4CIbLzJvcAB6B9cS3alzjBLw80zMU+M0hz9PywJ6JPHywzE3fvP4UvbG43cjQzIEauCFiWh4HND4XBPtCf+u1/OIYnX/9ApWGPTs6oQwhwottUOD2XM1YSnyOVCuFfuvVxY2sDbrm2yYn8u8+W3BY3aD5yKdIKYd8k3SUApQylX5x0sDo9JgA3qWRMBafIkyJRH5KutiEWyfjDbdtzSCleZe1Kzu+qxBKRzQoAf/Z37+HZt87iic/eqhRhU22VSqCJX0og7iJOtq5tU37wmVRapVITS8zyV1SAtGCB3FzWzKaVNJrycyS7os8zy2/tru3TLrpJws3kQS6VMuBc6yWdAteWNHRM1KVUnmSDM3GoMHO1Y1l9VoyDh7BpjUmGuu2bnOBsZcRyGAINrkxpUJmyOXlT0gEDbOub3YP4ozuvzzqA/GIa8nc6aowuNNN8h0mdn6uEsahvB/BFAO9ZlnXU/d2f2bb9WqEbYwoc6NWnJamPjOjTagCgrqVUVDK4QOFksgyWfr2lSO4LKgPCymRyDJDh8B2dmMb7/XGkZtKYTtsqffmWa5s8yrdvZBIn++NZ/lI+B3BOfiqVwbGkB6OrW90A1AFXVxXBExpMTccJ63Un2TcqKd0q4tVbTzCJJ2c8VdEBZAWnjvQM4cwl5/qq09XqvnIeNkFJCXpAb3AsCV26BWwvnkxh/co6zwaHZXmUNNvdsawe611aAHVgiwINUjGYLCvp86ZbSU9OketQ8jDLtQk4t65jF0cQT85koYr0lHO/eoHf/PtjasxlsQp5W+M64Q2CCAoiZeTe5H6oq4p45v/MYMKD9shSWO66SUyl1AGiKs0g270mqR5Me9MPhrtjSybZ5vtvnsFPPxhQtMeMV5hclqZbr98NV863vNldNR+1bdsHAFi5PlcI0X26gLNQyT1sWtT0B1IxmHgDSKTz3ddOKDC+jPzLSPWuV497gkg77+5Ui0Fuisy1LJ5V6aWxphLJmTQaYhGV8tpSH1MHhVS+fM6iGmcq3rs4opQACY1OD8QVGZQMaOmbVVd4AJQlqwdUZHDvu6+dwA1L61ViDq/VVOxckJL7miLHsX9kEv/+k7/tSXuX6esXhifV9yQWVo6bCVbI9UBlIjm6aaVzw9dWRjCdTmOakUf3qto3PIG3e4fxxGvv40TfqMKVSwywTL3WLebbrl+CnivjigaUB4BuIeubfXRiWuG46ZZhGxgAld/XyetfOnzeWIRA4p4lhpoKjc8anZzxVB+hst6xZTUeffkdNLhBSa4PiYpo0DJPuQ4SyRk0xKKqRNcB9/Z4wWV7NEE9gYyrj/Mvsx9NbgzdUjUFffXxoyxfVK3Wm0rycW/FfkF7yXL4N788p0qibWhvVi6o5Yuq0Vxbic62Rtz31AF1m2iIRRSr42xTyIOkpLg+KHKCJD+C3yDT2pFl5eXnVZUSeAmcmErM4Bmj9LBtD/ZW+uckjleS7wQFAHXeC/05Ot6W13kg4x+WlWZkZppM75YLWfKa6BAl/p03jabaSlwYmsC65U3Yec/NaqPKtigr163moc8XA5rNtZXGKjKAk93ZP5rEFzavVEVgJXeJaX71OSRvg1N6zMLiesedcduqxXjx8HnUx6I47yqMhlhEse+RyzpiOegRjqfkLuGzO5bWoW2RU1qK+GK6Q5Yvqkb/aBJtTdU4PzThO/d60g8AFaDmv/p35TrmoSXnnWtGzqGki6XI30mipf6RSZWlyrJXABR7JNeWjm+X/Tk7mFDjSxy64n8H1Pia6HB5qJJLRro0gvh5TKyPUsnr7ZTWemtTDSamUxgZn8YXNq9UMEsT74qMM8i9+PY3P6NcoOwf55DrRq6lIE6XIFkwXB8UVgaPWFAns55wIq9JMmAgRVqc0pcmCd2Hxqdx8Mxl3OBSle68u1Nd8aVFMToxje++9r661jVWR7MSV4Bs5STTVoHMhtIzzeQiof+QmylaYSn/6OmBOOLJlKJTHRp3yhDJhaJz8MoxArw8GeuWNwCW5VhDlqWi4hTFraJVpNaVPyvDSwiW7hZ4408+6RknshfKIJPkPJHKhRbz1IyNiJXheRkfmsD1LXU40TeqAp4A3Kr0VcrC4VxRkbNySkZxR/HYtjUe607GN1LpNDqW1ePMpTGkbGB4fMq3tJu09Onmam2qwaduWqZoY0/0jWYzzAl/9GPb1qibSmN11OPmo+uBsZLtG1coXnbWLqRvnMqNBwCfT3dFynbGku/Q3Tg8tBlziYi7dRpOXKG2sgKpNBCpsPCZm38Lr77zIYbGp1WtU1Mgj3TFflSqXKf8V0IJ9ZswqUqHxjNc8xHLdb+5RR4AeAizTL5pWfjhU2uW4WenLil9I6lmAah1AUAdIqaSYYWSklPUR3qGcNr1ZaZsqEKm8poejVSoAdOvQlL0a9GjL7+DxKUZp2CtbWdFgOmP07HR0nVAjKh0xbCN0pplwIxpqzq7mOwvrW8KA3e0Ch7b1onv7D2O8ek0mmqrEI04WOrxKec7LIfERISXNL4JU7BDKXbXqu+5nMBtqxbj4JnL6FhWrxQkr3nPd/WgY1m9JxVdulPIw/DcL8/h4NkrigNBjr8Uk/+WWHCplDge929cgf/88zNIphwFTTL/a5szSAluUlo7F4YmcMGtjv3cVzarsVBc58kZpXwe27YGN7Y2KLcPU7x564gnZ9A/MiE+32ksYqwHm/pGJhFPOtzUenEFnR5BKoN9x/qyUuFlFiZvat0DY2isjio6hbamak+8Qd8HzkHsDZRSuTAhqbOtUblNqORoJfP2WV0VQWIyhWubHQgn1/3PTl1SePczl8Y8sDq/QJ40wkxBQykSLy1vLborhTew6qoIxqdSuGZRDf7nT/626q8UmYH6wy//bpYekcx9Mynbc8ixQIkfXr9QUpH7I/MrEue4bsUilaLZ2hhDc20lWptq1GaU6by0FgmTkX5eBn26LyWQBhT3Bf++8+5ODwcwkFlYgLPA1y1vQkMsipTt+Lx27T2BrWvbnGum20YuvoaYw3+7a+8J7Niy2uNvlfhlDzzKVbTrVizCngc3qQ15w7IGTyS9ptJJ9miurQTszILbvmmlcyicH/ZUveCY6pYE+7zz7k6VpPGimxzQ1lSNH375d3FnRwv2PLhJ8Tj3jzhKjxlpbK9EJ8j0XTn+unBc6I9lQdgnX/9APbtjWT06ltWjfUkdDp694iF3X3NNE/7m4c1oa6rGyf44du8/hUfuugl3drTg4TtWoSEWwfLmGg8hFOf2la/fgVe+drsa45TtIIJ4eHQPjClY4+rWRjUWRELcsnyRwnDLtcexfrN7UJWLI+6fcDh9DGSWH+AgmiT/zHNf2awUL32t2zeuwLrlTaiLRRUcUq6zHVtWe6rZyHngO3nDa6ypVD5VuQ7kmlzeXIPaygjqYlEcPHsFP/zyZhz680/jxK6teOOPP6Gee2dHC+7fuEJxmcjaoH77EoAnr0GK/I4Ufv/zm1fiua9sxvaNK5SS5u8+ddMyRCssjE44h/FYcgaf35zZI3LOZAaq5/eu0P11YWgCNyytw50dLU6xELF2ii0lZ1EzACMDUZK6cWI6pTa1qfKwnmKuP1cmPciTXYePSf+XhObQ4pEwrRe6etFzOYGta52K1DcsrXcsQtsOjC7zPWwf4Fj9Dz3zK3xqzTJVNmj3/lPqqg/bVgubJDUzaTurTh5hXg883YXOtka83TuElvqYUmrssxybwcQUZlK26gf/zswyMhQSAikTIXj14/h2tjVi/eM/Udd8/cYjXQRHL4wgFrGAtI1PrF6K3fszSRYyuYT80ZUVDknWf/gvb+P80IQqQNs3Mom6qgie7+r1oDyAjPXaNzyh/KPbN65QgVqOHV0ITbVVuGFZTCkxoh2kO0EaDHKdyX+lz/+hZ36lLDaFd3ehbgpBJAofyEQdiY9urI56aifqBEUAspgm5bjr5beADGIJ8BInbWhvxn1PHcCFoQmMazcU/bmE4Ol+fh0tIWM++471Kdjp/RtXeDJ1w0Lenj1wBkPj03j2wBllkT/3yx7MpG1YyFR+kmvdxNro57Ygj4gFx9fPJChT3c9iSckpagDK38QFIRclhX7buFvaSYmAAEn/H5Wt5KQAvLy3fkgQia0m56+c1Gffcsow/bmL3f3UTcvQc2VcRcUBr093+8YV6j3SZdI3MqnYAElIz7/LLMvuSwmHxvJzHwPgHE59I5OeiLP0L7KAq0SZ6P2SYyx9hy909aqKImQolKnMbYtqPIcZhcE7ftcvHV+OOQD8w9EPkYajMN/4k096lAeTk9K2c/1k2apU2jnE6D8GvJac5NyWLIi3XNukCttyHOqqKzE+nVC+bz17UMLV2G7p+tIPZnlwx5MzCi1iSmQiva68CXFOal1O1go3bnNja0MWla2ekOSn3EwKmW2VHCyMFTDLMhapQFXUC3OVIt2W/aNJxTKoI3mkoTI0Pq0yKQmj42EaFvLWP5r0/OuIrcaLOQbsownSpx900oj70u2rFISzW+whif838QkVUkoO9aFXcqHSyRQarcCaaxpVFJyLVEcOSMSFtI4lUgKAp0KF/H5QRRZdbvnWPk8Ajv4rRu9l+SQAWW3iwiXqIGIB//ZfXW+0RE28DdJa4bjJQF7H0jrnFqFxVsjn6pU++LdbvvW68sntuu8WlfwxPp1BQphQG8zsrK6K4FJ8Sr1H77u0HGXiTEMsquoU0po9emEEDbGISlJiYLBjWb3CmDOGwMCdTD+WVXnu37gCB89cVn2hBSjRJbJeYxAiRa41U+FfeUgDmWo1AADLUogV3Uer+9NlP/geuV+I6ed8+Pl+9baZYjx6XCNaYWFVSx26B8ay4i06SkOiWkyfk4cnYyHOnLMSSybhSB9PU3tZoPjuW9twbjDhGVPOfxB6TK+QJPekHFcGhQF42i3X61ys6iDUR0kpah1J4AfBCyLLkUosgwd1FoCELcmfJRzOLzCpt42fZYp675UJTKXSrD3tWdhcuBELqK3yKjcgE0z5xOqlKtIchhNYIgv6RycxNWMjmUp7xkgvx+U3vvoByc+yLFosYqEqGlGL06Rw9XJnnDPAC+WSJZ7kRjzSM4Qdf/vP+NBFLyxxMcsOYmdMwSfpZhlMTOHK2BSubXYw5vQlrluxyJOpd8PS+qwDXUK/WD5NKuygA9qE7OHzORf6gacbABJGJktd+SkT/TCTJekIMSVVK+eWh2xtZQQbr2sOPGT8yrs5aBtLwfoSyRn0jybR2lTtqwDDGDly7V4cngBg4YGPtys0jN/39TUmfychc/o69iO8Mo0F1zbXU8eyeoVekTcErskgSGI+smDgeRJGpCvM7ZtW4vSlExhMTHmyn2Q6r56iTGRDa1ONyjSjSNgdLR09+ss26RaxdJsQ5tYQi+Jb//pmj5VPelPJ+8HkBFk8lFHrn5265EFr5BK6RJz3OQdSMgXAspTv7eEfHUL3wBju/+tfqoODfdBvEHqpMyrZaIWFZMpGMuWtZE6UAJMC5JX6vqcO4P3+uGrrrcK3K5WUZPYDHJdVGsD5oQksqatSDIEylVy6BACoZKam2irEkxNITE6rjdbaVJNVNEHOP5UCLem66sosl4FumXKz/uL0ZbQ2VePC0AQqK5ybVO/QBJIzacQHxvDoy+9k4bEZO5HkRiZqAD1xhn57IOO7pV+bAUAqe+4ZElqNT6dUbIGxFhoxyxdVoyEWwZnBhIdsXx8njp1T5HkGcKup6xBDnb42aO0CcDnRHXffib5Rz9gze1U+SyalkM9FuqEqAMDKwEp3bFmd5UrVRaJRJOpGclzr8RxYlrrZyco+fu+Yq5SURa2zZckrtU7eYwGoilRg5ZJaZbnIBUhYm17k1e+ElickgKykAMDZiLcsX+SxqM8MJlRGlsl9IpMU+J3M9TqqMMKmpAYARqvYdG3T4VY6NzAAZV3K5z368jvovpRAx9I6PPG5jynr47ZVi/HcL8+Blo5urR3pGcL27/9CYZDf+/ZdWWMq3yvdCIDZogPgScT5wuaVOHjmssdyJpvfoy+/g4vDk0jZNpIzaTU/KRuquDAARRrEAKIfpE5PxpHum8RUCmk3SWb9ymZP2jnfSamtrMDkdBppd43a4l/AwT4/8dlbVfuvba5BXSzqcZ1w3gcTUxgZn86yXiVHN10o+hhtaG/O8NS4sry5BonkjJYUFPVc4U0JPHINXrekFnvf7cPDd6zCo9vWGF2VfmK6JXAcmLi0feMKPHvgjIrVyAQqAJ5bGt1x+471Gd2Lex7cpNa3LJQdJLKNcm+88SefVPqpLhbFhaEJsd68yVcf+eK2hAeRa1mHl0nnvQ0gmUp7SjlJiSdTbvDJUgtRfk6nWUxMpQT9obPJJSYXAK5ZVOOZBF7vLwxNKBpFIMOhq6e/UinVVjqQrdbGGKIJJ7UXthM4TEylHI4KNyFHWo4P/+iQOsQkMRKQQXo8+9ZZdA+M4VR/3PUjO2nsI+PTCitMK3v3/lOeQIwMtLx3YVgpIN4GJAxp16vH1d+baqKeCiyJqZSKiJsOSJOfXd52OE60Uihyrokb1pM4AGd9SFa3i8OTGJ9O4Zt/f8xTSZ1rYdfeE0ox8J2jE07yBPsYrbDQ5KJe3u4dUhXHZVYrAHzm5lb89P3fIJ5MKeUsTSFCO/m+7oExT0CRmPSjF0ZQASepJDU07rFemRZOmKm8YUh+E6JauK5HxqdV0BGAa8ys8RgzDMDqNx9Kz+WEoix9oasXh89dQYVrwd7/179UnOi6SGOLpE8XhyZUVmNy2EGUSCQKgOzSYQIDnbIz0L73Lo5gJm17bnyAwz8CAJGKCmO8getP3np1alP+y3exfcRRy+QrP1TMXKWkFLWudOTvZRWJlw71eiyIHVtWe6wMXn+4eTh5fL6+aOJJB/rHeoV8B5VN7+VxJFNpnB+awK5Xj+O265eo4AV5Dx7btsbjS2SQqgLADcvqPagFwMuZQSUuOSuYkMPI/sWhCQyNTyNJmJ4gRpKL4qJrKaXSNjqW1uHMYALxpHNNZQakjKa/cbwfew6cxRdE8VKJwoi4mzALLeK+3wLw4cgkLgxPer5n8j/rgUF52EjIoH4j0ecayK7xJ+eUQR8qgljEQgUcSGdicjrryk70SCxSgZb6GFrqYzh9KaGUdG1lBH/z8Gbs2nsCF9ysxoNnLuOWa5vw6Ztb8embW9W7qaRrKyuQsqGsffromZxEqGFtZUTBvdqXOEgiZsa6M41rm2s9B79EUJzsj+Pt3iEsb65BjWsASBQIM25pqWIU6tZAt4+EWXrRQs7eqICTdVhhWaiLRdG+pA6dbY34s797z7N/iYPXqU65vrk2iECSQh/vJ1YvVdVwaisrspS+DgNl0FBme9Kg2L3/lFKmrU3VONIzhJP9cVUE18lCnPRkXn7z748B8GKjiYW/f+MKfP/NM6ptgIVU2kYqlVafjVb8C8lMpOjXJFp6jdVRvPL1O5QlyySAJ1//QFm+Tuahl9dDKv5Hf/yu48+yoPyaZAKT+FIZBKQkplLqisUFBThYVumfpqQBDI4l8ZKbNAI4J/DpgbiqSq0HJ3X8NpC58l27qFoFu0zjdO2ianRfSmBpQxXOXh5XvAT8fGdbI9769SDqXSy5idS9fXEtWuozFT14taQflQRNvDbb7jseuesmPHvgDM4MJrL8ddLnqlsq8m8yg+2Frl5FhDQ+nUJdVSTL0pPVviV2ePf+U8ofn0xlFCMsyxNMBDIbsSpqqe8A2etHpgkD3tqVkg4VgOLO+M7e4wAsfMOd4ydf/0Ap5qMXRrD6t+qzMgl33t2puFOiFZbK/FNscwIaSuMkGpnBgT/9fTzwdBe6CVl1MdrM/uy+lMCdHS349M2tONE3aqxQw4QzwMEPR100TTptA3CyPa9vqcOLh8+rcap1607SIvXMNbLZLCV6gsJ98PCPDqnfPfDx66CL3BPycH7x8HkP2um9iyP4xOqliFZYaHNdR7v3n/LckpwCDE5fF9dXYSiRqXKuH4jcKwA8SBD+vyy2UQwpKUUtgzQy8EXLUia2yIoLD//oUBbsSlrGxBfzHb2XxwEAaRuoiVagubYSt12/RKVPA1CpotEKC793wxK18PpHJnH3rW149Z0PsaS+Ck01VVlFP3UYDzGykp1NWhVULqMT0x46R6mEdQJ0fcwYQKWf+fSlhNroj9+7Vn3n+a4epGwnWKcH16Q1RT/vja0NHkucRVsZ9CUK4LFta/D5zSuVQohWWCoVmdmHcv7ku2WdQRmYIrfKuBtIJMubrGKuX9Up8jZSF4sqeBsrA5mCZZ1tjcpiApw0cUkaJC05sjoSU06FTVQLg568FtNC4xhK5JIeyH3uK5tVMYj73YQnybwoM+s4x3rilESkkA+ETH4MxgdVqJH7Jzk9pm4mVdEItq5tw9a1bZ5D6PObV6r0eGK8RydncNuqxR6WPz8o4O79p3CyP46WuiqMTkwjZQMHz1z2rAd9DjieZAbMVHNxOHyYizA8PqUyQKlQm2qrUFMZQcq9dU1OpfD4vWsVgqu2MoLbrl/iMWDkepUp/dyvJ/pGs/DZhZKSUtQ7tqxWRDin3WAbM5v0Mu/0v6XSUMRKvIo+um2NR+kA8HBH11ZWACnn+lJXXYnuSwkPYQtPU0n0QoknZ7D33T4sqa/CQHwKTTVVeOVrt3voSP1gWc8eOKMWYSxiYSplqwQC6WfctfcEXvna7VlVbiRhEQN70lUhE4QknwMJ3Te0N2ORe4OIVABv9w7jZH9cuSOIHgEyfl4C+XUFAGQQE0987mNqI41OTCtL+z///AxStkODmbYdEnrp36fI1GXpXiFqAZbD6T2TSisqVhMsULpenvvK5iwmxS/uOYh4MoUdf/vPiq9Ftocp5rJdflViSL370DPud7TiuYxT6IV15RhyfTVWR7MyCVngggHBvpFJtDVVe2h/5TyQT53VZyjyHTKpKVphKbcRAPUeyXfBrFHiiyVd8A+/vBkbr1us0uX1qvP67VRmTwJeUjU9AYbB5MuJKbdO4TAe27Ymy18uaYclvp984ovrqrD33T58YXO7UqKN1VG89+2tas3UVlYoAqd9x/owmJhy+GRSULEHjj1dc7J8nVzHOhlaIaWkFPWGdqesFH1IrBphUkasBExOkERyxlMXUF7h6Gdl5lcQjaPf3+QimUnbGHCTOOh6oWvjhljUYy3IVGkGkBpcayCZmkFyJq2saPoE37vglJLSGevYHp1buqWuSqV+A/7ltRprKlVgK5WGJ0NPKqFIBRCtqHD8q5ovXCfG18tMkVxfoiEU0Zio3iKtJFaWmZhOefrR0uBwCq9cXKcSWhh0lUpWh9pJJeYNHDl9uTjs+NRNNAOm57CNy5trcGVsCnXVEbzdO4wd/+VttQZpVelZiXq2mh/ZvG8moTv3/SMT6B4YUzcnjh0ATwFXZl5S5DtO9sdx+NwVTM6kMZO2PRmV9NPL7Em9HuCn/+Jn7mdSnlsgU6h1SCFvNDpzpPxZFttITKUwnky5t5C0yjjlOpVuEz1Ive9YnwpM1lVF1J6bSdvODRvw3Oi2rm3DL05fVjceOUaEdQJAfGAMF4fGfQP4cn3R4AgLr81HSo6U6fObV+KW5YsAOL6vvpFJPPrjd51gnxjoHVtWu9VIUmisjnrIb1g/jmQybYscPpDtm1Yq9wKt2DeO9yuLWRK9MO2cv9vz4CZl0UcsYGlDlRtEdEn0DUpVyo4tq1UacGtTNR7btkb5vhOTzgH02LZORCssFc3evmmlqkUnn0PCIpb16halkCijEw4pVGdbo3IbvNk9iJHxTJYgr8xb17Z5Km2k0sDK5hrn3cJCo4Lh9W7r2jY011ZicV0V1j/+E3S2NaIhFsH4dNpDiVlb6Rbkdd03MoWfyn1wLOkG6px+0A/O6yUJl9iPXa8eV1wmJwVem/2mEuP7Hv7RISyurwIAVEXdZa+xqPH7z7511sNmyDaOjE9hfDqFS/EpxJMz6Bt2DukbljUYE6QkoZD8/117T7iWY0QpMdN3AIcr5M6OFjy2rdODDJF9c+IFzvw11URVDUnOD8vMOcos7UINox4yMe4f+sDf7B50oJ5C6G6QN136wek6osuLcSWy+0niM7rBJAkaPzuTzgTmFtfHnECwBXxi9VLc2dGCH355M974408o1xLHivuC64y/45rhQSYVO1Ei61YsUr71G1sb8N63HbKpJz57KzqW1mFyJjuAT0Nl194Taj1muWcLKCWFo6bwlJIYZQBZhQFkIsKNrQ2eyhT0LzPAqOOkueglmfuL/+7jgemqQdlcuv9M+pn5e6JHiCIAkPU8Wu90WehZWBSJ/wbgea+0bGQ6Oz8HwBPEpHUXiziJLbGohTVtTVl91DHbtHLkGDK2UFtZgWuba7MsH1NWH3Hb9B2ynBfTdknyUxeL4v3+OJIzaZUtxvboUEqZuceAG/HUfhmgOv6b/ltTGjcA3LfuGlxJTBkz6fQMOvn/hN/JjFn9M0HFCPT1qKMrdFy67AfdA8xelW45xhr0eoymzF2uMZl2LW8JxDDr2HS682orI4hUWCpblOv+E6uX4qfv/0ZBSnk7YKk3wky5N2Qqvh9+Wc9qNo3lp//3f0L3pQRiEQtrrmlSz+rc+d8wPp1GhQX8X3/0e1nzCwArRBbtbIsGOF3wx1GXnEUtF9+VsSnvHy0LL3T1Yv3jP1FZfbxqkPwGgKJEnUk70f6GWBQfCgJxUjY2xKK4+9Y2xcZHS0ynIKUFQwub1gGvPrpVQN/uA093qTqL3QNjikt5fNq5OurP4+LZ8+AmFZBZt2KRYqJ7oStj4dBa2HnPzXjl63egralaWTY7tqxWFhZhTzvvuVm1r62pGq987Xac7I/j/r/+pdpc3/rXa7FueRPWtDXhtlWLlWWmv3PPg5sU53VtZQStTdVqDPtHJrC8uQbJmbSypja0N6t5o0+c1ghZBkmlmnALO5CqVQVlR5M4emFEwd3qqiLKYrzfpbmkhcRg0hf3HMQ3Xnkvg9yxrKwMUCnytiKLuh69MILG6iie+OytnpvHORej+5JLC/rQM12473tv4UjPkLql9I1M4onX3sfbvUPoWFavAsO0kvXq2hI6qN8KSJ1qUkYb2p1EnNMDcfUe9md0cgaP/vhdZVXS6nzjeD9+cfoy/nL/SXUre/ats5kA9t1eK57rlRblnR0tuO36JSo79ZG7bvKUpOIzSZu6e3+mAMX4dErFUaRrce+7fXhsWyda6qoQT844vOOuscEbF6lwSTF89MJINnWp0CcJN42eWc2msWQ+QTJlq/1731MHMOG6RqqjEXU4yiLFgBOYJ/WspKwtpJSUjxrwQrWuba5B98AYljfX4PqWOs+p/c2/P4bH710LIONb3L5pJXqufIAv3XG9StV26inOICF0/uL6KmWp/+zUJVy/tB7dA2N4/8MRlW0nn0uFTAvhsW1rsqxMfk6mpBMXTR6JCgBLGqowOZU2BhwIl3q7dwiSX4FBue/sPe7xo/P6yU0p23zD0nqV2carr/4ZCWmkdUlLhUGgJ1//AL2XEwp6ReVFn2akAqqMF28siakJpF3XB5UOCz/QJy6rn9BKbohFFXpH4qMlplq/OQyNT+NE32hWME7PZE3ZUCn90prSOVxkpWmOFestnuyP47FtnRkfpusi6Fha56nCw+8S2XN20EXguCx9bKdMwQcypcpk6ThJP6pfqfUYgYOSSQEjkx5lfvT8sLLIxqdT6vAkBHBAkGb9emBMMdi1LarxpLfrN1gALqWsM69vf/Mzav3IyjZ6rc9drx7HxZEJXBmbwv1uYFjGf5idDABLG6vRUleFwcQULo0mEXHddTJmwixO1qOUWbS7959SsaFxd8/raKHOtkZMTkuCpYhy6QCOi5DwSkkzsbShShGOMVhaLNRHybk+dDpQvbZgZ1ujUlySLMVECiSVaCziXIuZ8jk+nVapvU5Fk4zFLVPFeYrKjc9UYh3aJRnQ5HdMBC4mpi49bV3Ha1LhZ1jGvFdnCiP4dAHJd8kr8+K6KoUFl/UcddIguhQaYhFVXUf//I4tmZRbinSh6GnhkkmOwoQjWZvRj92Na0UenjrznGxPxAJeEldXilwjOvMgcdQM0EUrLJXZKINa7AeZ+5747K2eoBSZ/KQ7S+G63ffy8HLmuQIbr1ts7LPefzk2vL7XVlbgG3ff7OEw4bqVgTgmO919a5tK1KFIegOd6Eq2l/vq3/6r6xXaSrpN5NrjXjG5SbgeX33nQ1yzqAY2HAOgNgeRF0WviclxJba/98oE0raNykgFvnF3p8rQ1V1mdIGe7I/jO3uPO/Eal6YCgAdJJvd1x7J6x88f4ILJJQsmhRzw8sXCtpXikqmlRCkwEs6UWKYu8/pBC5dJKPRnMSmhxl0EdVURxRnMzUYydxZ2HRqfhuV+p7WpxmPJPPeVzWqhPPn6B8YEDJ7EdEXQGgOy8Zkt9Rk/8vaNK5zrojis+kYmER8Y85BNefyV7uHb2hjDDbE61X8iBqiIGBxtiEU8iTo8PKhYeAgxfZ0BTsL+6NPUg3PJGRuwM/jxOzsW40TfqKc0me7XJxZ2MD6J9Y//xENTqqNONrQ3YzAxpSw6HSIm+Rloheki14gk8iHKiKnoE5dTzmZ2A3e0lun35KZva6pWkLN4MoX1TdWeElw3tjZ4YIQAlIV6+NwVjE+nVSai3wHlJ0987mOqHTJpw2H0S3p8u7T62C4TTnzfsT6V2UqiK+lHjkUqlDuPeGMdHSSriwMZtAefJVPEz7kJWuddSgYAuHZRtYODn3IQQXoiFd9Dy1/ymAyNTysaCbZzOp3Ck69/oMis6DqTvDZsNw/S7oExVf+RmZrVLs46kZwBXLeJ5CsvtJScoga8zFqE5LTUx9C+pM4IqZN8zNxEhBjpzGlOEkLKgzHWi4ECmauz9KvZgKKLlNdswLzwJORKVhPh6awT/ku8OC1pZmJS6NIhGmLr2jYP/SWrxjTWZLiuaQ2Sce1+t3ABk4NkyXsiSY6eH/ZAwWgt8bYjs9qAjJuHCUNA5qB59sAZBbvjlZkKSGaZmQj+Z1JpTzxAr/rB6jP3b1zhwc4zyYNWrSxnJoVtIKcxEQuyQIROEStZ1chUKA9lwvl0BIBUKlQMTBYBgL95+DZf6KP+DB5yDs54SJFe6fUE+SwWkzW5UfSbiUxMYdp8XXWlwnavf/wnWda3/jx5KzbhvhmL2dDerIJ9HUvr1K2KwWVYFmA5GaMdS+sQTXgr6shx4pwNu0FIVeBWE0J1HYrVSfz0gwH8zcO3AYCHhmB5c41ykV4cGscTn71VHbLj0ykPx8sNrlutGIgPoMQUtVyEpiIA8rTSK1Fwg6bS8OCq9SokcqFuaG9WWXdUkCf749h3rC+rFH2uCsOf35zJvGJyiezXk69/4OCs3TToHVtWexIQHn35HTzxuY+phdBSN62CUQycyuAWC5vqJDYMkvGzJJ2SVIzy3/YldSqow8NBJwmSc0HXBAmPqHzZ7vVN1R5rRyrWlw6fxytfuz3roFNz7I5Fc20lvrB5ZRaZvs5TAmRS4J/v6lEluACokmW0fL+456BK6zZxHT/f1aOe86jL26JjoHnTY1V7qcSlJcm1KBN82E8mdoxPpxX/ir72TfEE0zNIA0Bcs55+T/+337PkM+kikjEEAKrwsYRpPnLXTZnU9QpL8dzI53EuJQ0x4Ozbf/Uf/zvOD03gg/5R3NTaqJBI8kZ28OwVz62FdLc8cLjXJNabB1fH0jqsX7TIw1LJ9UTEz23XL1EuVKaXA1DuE2cdZXz31zbXZh3gieQM4m6RCcmXUgwpKR+1JACXLFy5/JR6UsqdHS1qkujjCoLN6AkIQb4w2U79M9JHTmWkE8RTGdKiZ3IPyd11NwMAT5vkLUDeBnRCeene4JhIVwMrVPhRgAJeOlVp9bQtqsnyQZoShfgZ+g317+qHQyI5gzODDhlSWEJ6U/xA8mVzfCkmkn4A+PRf/Myx2pbV440//oTvOjGtQ78kIFYjojLX4Wpb17bh/3jjJC6NTWFZQwwD8aTvOjWt80zRgwqsbm30+EbpitNpQvU4jgzGjYxPe2IIEuppggxy3OUa+vzmlXihqzcrvZzf0eMYQCY+Im/GEnYn41Pk0yA1rBF6KIpL6D5juXe5ZnS4LGHBy5tr0FJX5VsZyQ++m4+7SsqCqvDCSDQVjslv5odXlZaaPF1zVezgu2mBknQpaNNwkfpV5dAVpcSiyu8yOBqNOJmAOnEN+y2VvV+5J6nMTJmWMuCqbw7JiW2yOBmgZJkwPSBo6h83MJnNeHjK0lmmoKpOhqTjt00bRt+U9E3TvePHtiY3mamCj9+6kZ/nGHANyoAT4NzwGqujSoGbgt38vc5hrgezTb59/f2m4Lap3SZFLCu7cD08e+CM4s420SMQ0aNX05F91Q9UIINDN82BBBIQv86DCYCqpKPjrXVDJYhfG0AWKZqMJzGgDZgry/jt+dliqReMoga8SSwMfFDCliyScC59wftZjJSwROhBz6Ll0HvF8W+tXFKrIEp6u6QFpieS6P2UKBJTJN2EfNHba0qa8Fqk2aXC+H0eohQqBqlEJOe2TGiQpblk4oHJQjEdHkFlq0xisihNNydpuQEZhQcgcNNJJWtCzLCiizOmmSIW+nr8o785jEtjU7hv3TX4yz9cn4VCkevBVCtRT/gIUhYmV6JMsGL8QypaifbgnPtVwJG3QF3R86ZE9I+O0vFrI5+lIyv05COdhzro0NWNO9lnPclJT1zTrWs53rMJAEtZUKiPG1sbPFWD3+4dQnVVBJNTaY8VpPuzKVLx0Z/KiC0nf3Ri2gODk9/Xfdi6mN5La3N0ckZRNUrLgTSnxF9yQejEPVwU0v8myWu4aZkS66AVHHgQffH0SetMdDoHNIV+NxYPnppJG9NgycMiOYi3rm3LRre4qI1IBZQrhs+SjHFy3OWYkpWtwvUTMqDKvss1ECSm4O6uV48r0p+6WBQzKVsVagCcCihUXs8eOIOGWBSdbY0eEizJL9I3PIGLw5NITKU86fHkgZYupn3H+rB900o8+foHqnTZhvZmHPrGpz3t1lEofjcp9p+3FPrD+X0in0w+cr0iuM6K2LG0DuODM0jZDiXDFza3K5eDviaBDIGUKSipF8iVVVaCMit1HLZ+yN331AEAUG4fKk8+R8acdC51vm9xXRU++3/+Qo2P5F0xYaJP/SaO8ek0jl8cwXTaRt/wBJ743MfUfPjytRRASk5RexQtMlFbkrVTyUjLQyebB+BRGiRV6Vhap6w+4if1xBMudum34+lvQh0A8PB8UBnEnFQ4AEBLfUwliBAyJzeSHrTihOt91CvgsJYg4GRWdV9KKPZBBkpIUkXleOo3Y7jve29luThW/1aDk/mXSquECF0+v3mlqiADOIEnAFlESJLhrrOt0VP7zrQBpII79uGostoJlZR+2YNnLqOxphK5hMpDigpawcpQE4xMoMJyiKNGxqfw3Fd+30OgJRn9ZJs3tDerKjPdA2N46JkutDbVqEA2laespC6hc36kPVwPJleWtNa4RqiwuAY5b5L5kGIyQiTjG42j0ckZxWMeT6Zwom8U7317K4DMvusbnvD4pSmES1LxD41Po7ICmE47ivFkfzzLVSANJxk4jF9KYH1TtScRi3Og38h4WxudmMbOe25WwW150LH/HLvf/rPXVLuJogIyJFw0WGRREgCYdv9lVaRiKWcpJaWoX+jq9aTaUs66WM7BxBTue+qA2nDS8mOQ4vC5K+rU5mSeHUw4WUkuabxUuCamKxm1BqA2Fq0PXcFL/gBWcWHFbqIzpBWz69Xjxo1E0aFqetSem/e2VYtxqn8UgIUvbF6p4EIS9J+YnMYDT3d5yjIdPT/sgdZx4fOdujUmLR9W+55yMa3kjKbQkiG+mu4SjqFu8QFQmwKASveORTMYd7nZJP48KDgsr660qoiSuLa5BnVVEbzf54zH0gaHfVByOuuczOSNpjXJdi9vrkHf8IQHoUBGxcH4pDqkACczcnRiWkEJdWvSj8HxpUO9nnGWV2y59lTbRGEG3TWo32JotHAf7NjiJC4RKaHfXvizzDTlHmmpj6n4iuTAJunZQDzpUXhqHN02SHy+hPUd6RlC3/CEIoMCsisbsc+n3QPW7wb2wNNd6GxrxHO/PIeU4AHquTLuQX+Qi2XX3hM4PTCm2hyLVuAP1rYqrpigQHchpaQUNeFUeqrtoy+/AwC44jKsUSRcj7n649PpLKjSfU8dwPmhCcUQZsK96tCo0YlpVQKqpT6mGPnow/3uaycU/y8naNdexy8Zi1Q4pbCW1Xt80/uO9eFkfxynL2UwuLrop7dekV1a2oR5AQ5MjUk717fUZcZEKDZWZZciN2FjTaYqiMnipRBpADhsbetXZg4TvZK5TmwPZDiSFUe4IQEGgIccviHmMM1dt6QWx1zXDkVXevLW8+iP31WBS4nJ3tDejFu+tQ/JFDA5lcJ7396KF7p6ccu39nk4xY/0DGUFOwF4iJVSopoQx6e5thIjEzOetPkLw5NqrsiPTHmze1AlvPBfioQt6u1Qytx1rTH5i8gHPzy2DNzKJDEJ1Xu+q1dxU0uFNDoxjSY3WUr60OWBe/T8MHouJ9C+pE4xKfLwBRzji23yQ81Imga2ycR9vaG92eNylFA7WdmcLkqW3dLHt7Yyc8DIhKfli6rVIVlbFcFf/uF69V0/LvRCS0kp6kfuugnffe0EohEL/8/v/wJp2/HB9Y86C/za5lrUVUVUtFtaEY9tW6OSG3T/pcnqoELWAxdU8LqLRTKwTVxOKcuUiRm/OH0ZrU3VAICZdBrJlOObvrG1wWMRvXdxRG3k7RtXZPn7yL9RAaiMLC4kLmpuCGnt7diy2j0ETgBubbv4pQRa3cxAXm2lEvujO69X7+UGkfhoyta1bXi7dwh9I5P40u2rAGR8oy0N1Z7NpuPPAe9Vm7cSIJN4QDIbAB5sufSjco6OuUVM9xw4i0/f3Or430WBhcbqqCc+cHFoHN+4+2blr5a3p8e2dSqr64Gnu3D43JBDFuQWiH3l63dkKUXeBniYyOxQok16LifUwSQDdeRcltam/Pld1/JMpaEw9F+6fVVWDEPesHS/8wf9cQzEk4i5VK76bUzOCZVLdCyprMkdW1YrXvR4ckYd2BK/LSkObmxt8OCqG6udfXnM/Rw54Pl+3rDOD03goWe6VACQyk2/ccmakC31Mc8NhO2h717ne5H9PtIzhNMDDqdKW1M1LsWTSKZsT4X4yZmU0gN7Htyk0DstDdX49/9DR1bMQ+4N1pLMFTuZreRU1JZlPQPgbgADtm2vLUorXJG+KAo5OJprKz3QICCjREmKz+wsKUGntbQqpItBfkcu6ObaStRVV6rrecp2fM5MLx4Zn1KQO1k/TlpEUpGZAny0UBhBv6Eq4mHl4vOYLCGtC/qs/ZIEyKvNgM9KwYUsr6Hy8wBUkYb4wJhiHVPuBTFeesyA7gfpl5TjSfIbwLHAvrjnIABLFWql8pYHAflJyHb4ytdu98QIuNHf74sjmXLSsU3+6iM9Qyo7jm3nLQGAapd0N+3en0n4ka4sueYkoyO5zCnbN630KDT66x0FYiHt+oWXNsYcpji3mope91Ne+3W/8w2P/d8AnKK6nB/TzQ1wamO2L8nGCP/wy5uzErzkOBC3LxOiPNmMrx5X3DB0ZbDdD9+xSsFRJYmVdOfIOAYNm4npSez+w/WeYCrX0fbv/0JxrOiIDQCqcjv1yO5/8ztqzj9mqGIP2/aOAxyQg8Sjy/l2DjWnlmSxkl7CWNQ/BPAUgOeK0gJNZDT92uYaj+vA5NMD4OET0K8dpmuiXHS/OH1ZFR8wwdWe+8rmrJNa4lS/dMf16L2ccCt5tyvuBP4LOMgVeZ2mcj31G+eEf78vjvu+9xZ2uskBOmscr5ZcNPKqerI/jm/83XtIw0EtyIw5EyRxQ3uGH+O7r53wbFAuch31IX228jncUGyX/B4PIQAeeJccTwnDo0sJAGLJGbS4/L5UxtLtQ2GANgvqZzncDg2xqErX18VkKSemUpiYTmFkfFpl4unuJj8FrccVtq5tU/EUYnUlW2FnWyMOnrns6TcPcsY5mCGnu6KkyJvh1rVtaGuqxofu3pEMcKRU0FFAtZUVnjqdfKZfgBtAlushK9HDPRhuWNbgMbye+8pmHDx7BSkbuH5xrYLa6YFFuZYknzi5dxhM3fPgJmWh6/5lwIlbtS2q8Rhj27UalGyzCUfvF5jVDTl5U9KRNoWSnIratu03Lcu6ruBv9pEN7c144nMf80w807z1CDHgtd5MAyWvUvw8hVUeZESYqI2GWMS4CBkAO3j2irKcAHgqecvv8MTFyISnyO7DPzqk/JDJVFotBrmZqCBkII3JJbKqMr2ZI+NTOPCnv581nhwjwsxY4DOVRtYNg9Y6AMW7y2Ks+gLsbGvEL05fxuXEFM4PTXgJadzN2uBWZ9HdIUAmPZnR/sExh+JTFSgGsirmyKs5C9VmBZYEKZUfpt5kKZNwiqgFaQ2bEBNS5M2JVb9lQHrX3hMeFwHRJPQRK1IqN87hVA9a43Ft+QUgeZDrCTV6Uo7HmHF/Nz6dzjoIZC5DEDrFj+oXtu3hzZHjx7mpq4p4DgOiTwiXJGEYqRloPOnK+vF71yqX59a1bfhP/9itntk/mvTQMjRWRz0Hh7TiTYcTAE9gVs2ldhN+5et3KP/3Q8/8Svn1CykF81FblvVVAF8FgJUrZ18vTFq0h89dUeB4U4TYZN3plkfQ34ybz52QVNrZXCwR9fPuQfy2u6H0q6/+PN1ak4EJGeioAJAGVFUJAFk3A/0WIBUPqyqT4OexbZ2+UWgPkkWQt0tCHam8OAcMvOicKYADXZtJ27g8lszyazOQxWdKkn45PvK2snv/KVwYnsSJvlGPlawrjh9+ebMncERuC/qbgQzfy5vdg0qx890y0KxbyrwpbV3blsUop9NX6kkQJh8005ph27ixtQFrr2lUn6eCvaEqgsbqqGdublhal+WykRA0rmmdiS9a4b31UPnQd85+scwZ4MRC5Dpmu7772omsA84kus9cZ5HbsWU1dvztP+PD4Um0NFRlKXGuD0JPmYxEpQw4bprk9BiGxqfx0DNdeGxbp7ppE7P+nb0nVLASAL5gYLGUbfYLtMr1pq9jAEblzXmTfv1CSsEUtW3bPwDwA8DJTJzNMyShTQWgilzufOU9vPRHv2ekueT3/OqV8W90Fzzx2vue1Fo+k0E9GT2WCAkbyILZARlkCpUF2emkFS+JXGT73u8fxaX4FJY2VituAr0PurVI9wR9ao3VUZzY9QdZ48fA2Nu9Q3hsW6cag7pY1CGTUSnONk72x7PSiglDnBGY0e5LCaUkdmxZrZjrltTHcH5owkOWwzEBsmMJehFe2Tf+K/ut449l8g+f9e1/OIZkysb33zwDwLEq6RqZmskopTODCdzyrdcVNl4eTvuO9ambEqkwpVWsb0D98Hvl63eovpL1UI+RyPgCx6pvZNKDAc5SDO7cSrQQLVDePiTmH0BWkg4V4UuHetWNVFreck/JOIleSNlkBOjuF84hDzLp/x2IT+Gm1sYs6Ce/x2Sj0YlpD4KDCBvAcQfxZqIfVFJ4wwUcQ+OLe7pUGjx/R8ifHAMeVCyGoFveJuUtk7mKEVAsKdTH7v2ZyuFS06dsx990cXgC5IzVFYsfFyz/RncBUQOSv9jkk9YXWAWAa5prMJiYwulLCfzNL89h77uO64QKiNjSFw+fVwxk3NzcgEBG+Xbu3AcA+HB4QpWlkn0wWcd6cFIuCjl+kzOZRCEiTiQXBSWeTHkyt6R7RroMiDDxBF3guHyW1FVhlVuBR/oaqdDlbUi/duqIG5MlwgPhE6uXqgOVpcCefess9h3rw5TAW3Fcdu11fL3JVBptLiKH7//ua+97MkAlfzMtOiJSaFGbDhZa64mplHIVjU5Mo29kEp/+i595uCR4WPJvgGPNTrpWYGIq5ZtAwbmNVmTmYmh8Gj99/zcYTEwpxSvZIAGH6P6HX97scS1wrjvbGj2HO5OjeIjodLoZI8CBD0p6Vf0WqeZWHHQAUGE5GOwXunpVboK0au/73lsKiqevb52ALFph4ROrl+Ifjn6o3H9MXpLflZDD7oExBQvl7/7TP3Yr6KRkmiTCQ2+jPJjkYWV0nRRISkpR05+sK4OGWBT9o0nl0yVpEgDPycZ/ZSrrF9yrIydZlqfi9/UkFpkdxhTTNBwfMBUhK6NEKyxPSSaM2mipj2VZjaZr1pL6KowPOWWrEpMZWlP6XXVIFAMt0qdp8sfzuk3XSmtjDOsXZWoAcsMzMt9SH0NyOq2u6NKvLX3mjr99Ro2Vzi0t+6sHeJkMxGQmCSuTqBbT9ZpUpqxCMjo5o66aLB6xfFE1+kYmcc2iGvyliw7gLUW6I6hk6L+W40sUCquCnL6U8OWk4Dr54Zc3K6XE/kqIIZAJ5B29MOK5pWTWt2MpEudviotIDP++Y33q2k0ODamY5AFCClQACktOxNKLh8/jRN+ohxqWIo0fHu6ZW5jz7ngyhUdffgdv/Mkns9wfDOCRvVJWVSK2/MbWhqxEFrahIRbxpMzrgUwaVz87dQkZxLlTgq6tqTqrTN2ZS2P4cHgSldEKdxzi6pYlOUOGxh36Xz1dX0/L14Ofc6nsEkbCwPP+FsAnAbRYlnUBwLds2366GI2RClJPfJDsY793wxIPCkFaIS909XqoLZ/v6sH6lQ5/BjcLAxW0gGS6KQDPte7OjpYsWsSIBdzzsWtUteREckYpzxuqK3H0/LCCZ1HkFZtW4ZK6KpwfmkAFgN4rE0im0oi7J/6eBzd5Isot9bEs4hjdBcTxoy/zmkXVSEylVA1JolVoNZzoG/UtmQRkHy7S385gm+46kkpeHqJMZpoYTOBkf1xt0NuuX6ICa9InqbMmAlCVbWDbHmw8aynK8mlyPFSwy7ax+rca1HM72xoVBralPoaLQxM4en4YF4fGccktrKwjYwDvTYc3jttWLVY+4BtbGzx+ca5T/k7GJqqiEXxqzTL89P3f4OLIBG788/+G6XQaaRtKCXDeIxawtKEKh88NYXF9lVLcOg8IDxAaKzpnOA+1eldBSpy2vl7l4c61/5mbf0sZKkw00yGDfJdOWKVDV/VEFjmvfvEB6Xc21dLc0N7sCXA+95XNuH5pPS4MT6IqYqEq4ozbDVUR9FwZV32mXpCxD75Pj3NJg4Q3wmL4piklx56ni+SolhwQek1DKgXpxrCQKbelM73pPM25fm/ix5WTJNnYdCY1E82o/nwKN/G65U0eJUMGsYgF7LrvFhW99uOolu2TbHAcR5N/kqnWsu6jKR6gIw/ke/ziCDLjUtJVygMQgKet8nc6isHEMQw4ltgPv5zJqDS1k++Ua0pvB6VjWb2KTZjoWPV+cD5MyoPIANb6lPBEvRJJxAJqq6Kem6Uu5PA21YyU48LxM7HcBTFRUnRfsxw/8sb7sVj6oWRyBWpNFLC52qk/X96qf/r+b9Ttw4JzIbl2UQ3OD0146pjqMQLTz/rY+NXtzFcWFHueLhwk5udPzqSRsh1s46Mvv4O6WFQtoNGJabTUOfy0aQD17gaQ10IJ8idy4o3j/ZhJpT0p39yQ8kqsl+mSlT6ovKkkSV4kLSt5EnPCZQYU2cK6B8Y8CRd0ZwDOgvpP/9iN3f/md7KIZ/gu+hp1JUzCJhNBjeyXDNr5WcwAjNhiwOzm0YNncbfyBnHDTEvvG3F8hZlCvlFPW00IHr+rvsxc04m7vrP3OMan0wpxs33jCvU7SmWF445Y3lyD9y6OZFWnZz8iFjwVdNifdcubPIEn+bNUZnyOBceVVhmpwOL6KlwYmlBWd01VBQbiU1jaUIXJqRRam2qw856b8dAzv0I8OYPv7M22/Ll26BMnk19LXZVaawz6yYOM5dzk82SwzMRZLrNDyeFMMR2w0rViskLlbRJwLFdWOjo7mMD5oQn0jUz6Fnk42R9X1joDzBQbjodl2E1Q07lVKPo69sOxk5zLxBtUKCl5RS0VA+v2UbHxhAQyBWO7LyWMVi03BFnNZBYkA4zRsaQn4UTnLnj05Xdw9vK4UnayHuONrQ0evLfiwqitwvqV/qml0s9pOsWpnCTsqG9k0nj9ozInEZNEXshsMV47dUu5pa4Kyek0WupjHn+xvmBNTIWy3SafHvtC1AohWhvamxVPRaSiQll6euV0ih6PkGPod9XXIXmAE0wE0qiKRpRiYTuWN9cgwaQb169MNjm2h/2g++FE36iaD+WisaysIJtpbUuf683XNKKxplIdWCT3AiIeWBsPo9bGGOKXZgDYWUFcrh3pL2+IRdA/mgQL78pbHhOP5OHPdssbJ9c6183u/acUwoY+Zj2tX6JHdIPFZCHL4Bzbp5edI/mVSejGlFJbGcEDH2/3wFm51yVFql+CnOk2KYPlJgrYQknJKuqg642sIiEJymWBWn5HKk8GbbiYpLUuo7yAFy3yyF03obE6isPnhlT6uE7gDngtZsWFUVflsUql1SKB+7o/Wy4IHhjXLanF3nf78PAdqzzjQf87i/bWVVdm40MV5tNS1r7ERtNfKJNpgrDcJuIcqShM5E5yXIlu0TG9rYAvZlluDNPG1i0bE36W8ti2NVncDbR4pd9z3YpFqiqMrGTOfugHisk/L+fUhNuVhy6DkrylSEQKs2flmmNymHR36euRmb6L6zPVUPTgo59PWd4sI5bjv2W2qDxgmPmn/NzuHjs9EFfwUMlASN/4jv/yNvqGJ5TB5WddA/CMhVOrsTPrsxRCDGVV8tW/VY9P39zqqezDudSVs04rKz/33sURVUKObTbREhdSSlZR+12l9AKW0vfrB9HTFfL2Tdk+NZnyze9I1wI5MrovJTw5/ZLP1+/E5c/cgLJwLDeCvjGkf479+ss/XO9h7pKfYztMtQ8BeAsauJYIsdFyjEzXQN0Fwk0mLWYZXDG5Q/S54IYlhCtX5RZ9TEwbwmTJ+20YE/+HTIKRWYaPbltjXB/81+S/l4eJ34Fnerd0E/DZ+nz6KRNah6xuT97xi8MTGJ9OY3J4QkHX9OCjCetPK5PK/tfuWklMulBON4uXqe6Sx3znPTer9Sb5SjiPnmArvIk6fmMDwDMWpnGXBpocD1NFJSp+JknJ9/N2BXiTz6gTdLKpXPM7VynZYKKp2Kh0e7CemcxIk7yzJmtcBlcU2kHQQep15qTFoCMt+A5TwM6vDJJe3FQqZT2I6afwdT4CU90++e6wvMdhrmpy/Pz6qmO//f4NW6vRhCXXg55+bTQp6aCAmd84B42NifQrTCmvsOMc9F2/z+nlvDzBagv4zn23GBWe9+bpLaPG0mYA1N7Tg6OmMZXBclMh2likAlVR/9JchRwvwAlqM+WcPntZrk0v4hy0TuTvw6Td55IFGUwkppT/AtmgfyCT7vri4fNqsCVHrKl8ERcLAMC21QZjsE1CsqQfWE4QF+ny5hoPjahfGaQN7RkypD0HzuLFf/dxbGhvzsowG52cwcn+uHFMeN3mz899ZbMKrpnoSfk5U0CEi0kvfBoUTTdZDCa/q/Rp0gLJcC07GZMdS+tUBRHYtq+Sls/hXPIqrmdCSsvez1/o537Qfy8TlII2Ib83OjGNRHJGle86eOayb6asKaAoDyI/y0y3DuVtTp8nWfjg2QNn1M0pbUNVX+GaJ3JDWoyAF5vNoG9TbZVqix4c1fsHOMH7lvpMwpCMueQq1BzWgAgaL/05kglyeXMNohFL0dzu2LJaGT111ZW+Bo8pwC6zGYsRUCxZRW1KpZULiX5IZq3x+qJ/Tidx4eDLKDYXOi3qlvpYlnLL8j+5NxH619geP14RwEEGfP/NM5hJ2+rvTO198fB55fdi0OStXw8qsnWZ7AJAHQbS5WCKPOdzHaO7qW9kUjGb+dFrqnEwCBWphA4ePjfk/tVWNxoGZf2qtmT5Rl0GM6mM9axS6b7QM+U62xpx+NwV1FZGPMrNREEgFbd0gembkEpRJmkR/eGXKSt9+bxZ6Igdkx9eP6gBqHbd2NqgPneyP46eK+O4343b1FVX4r511+DVdz7ENa6VeLI/jje7Bz1ZuhvanfTx7+w9DsDy+OTpSrjvqQMeNjkdMichqwCMyA4/140JfRK2wHQud5kJIdRSV4UDf/r7HsPukbtuUnubxpY0GFiCTEIcd2xZ7RuIL5RU5P5I6Qh9adI3xKy1Fw+fV8x2/Jz0BZue1VjjTU55dNsa7HlwE+qqvFUvAGcy5Ht33nMzmmsrVRCEFUf4OVp0/D7bCmRI4e/73lvYurYtcz21HSX2yF03KWwnLQ9YFo5eGEFbUzXqqiJqsygr0mUsY/t44gMZBZZTRLbf0QsjHhIpPu9IzxBe6OrF+sd/ghe6etVXyc7HPt3Z0YI9D25SSTHfuLsTtZUVSKWdQOv2jSuwbnkT2pfUYfvGFUZ/dmdbI6IVFpbUx5xfuNYO+2yqh0fhuC6uq8L9f/1LvNk9iD0HzmLczcDUSaKOXhjx+FjlfD9y103q0DFJz5VxFdhet2IRHrnrJmN/+NyOpXV498II3uweRGLSUeitTTWeOaCSeeiZLtz3vbfUobxueZNKQz8zmFCHmFzjHJfvv3lGzePPTl1CyoWk7dp7As++dRaAg9eW/dp3rE+N0UuHevHA0114oas3s5ZNhESivVzDvBn4jcPohFPG7c3uQdz/17/EC1292PXqcTUmcu/KtWd658M/OpT1N30OgcyNhLUtidrasWW1eh+zPkmxy/cwYHpm0DGi+kcmPK6c7ksJRCrgoVstpJSsRS0jrHrgQ1obPCGlxUVpqXNq4fkF+kzkQBLtIdEPMthDwhudtvLRbWuMFp0eTNKtDolOYD+JzKitdFJpT/bH0XM5gc62Rjzf1eN80d0sOpJCjp98vxTTtZC3mMV1VR7rSz5PFqCli0hG4wGgsTqa9c4bWxswlbIVd/CzB84ojgr982zb273DmEnbmJiaydrwutVuuuIOjU8rPpZohYWH71ilqmnrNzXdZSXnmwUGTIkcsh1ynZquv/xu/2gyk/Ys6nhyTeoZs5JcHwAuDk144Jr6QSXXJQsEf+n2VWqOGBsAnMSxG1sb1DVeuk2ADBadc2siJJI3Egkf9LN0JVc5AGXVt7OQhWWpfAfp++dcSTy3DsEMEnkjkaij3fu9lYmkW9QE0yXiRM2xO1ay2k+hpaQUtR41N7kvgGwl1NpUg/jAmKgy7SViUUxobk05sofx+qlXIAHgobuUIie753ICD9+xCi8ePu/xc0lf6Y4tq7OuaEd6hvDFPQcxPp3GYHzSs/D5DG4sXj+pEFjAtiEWUaW8dMYyv0NI74ccQ+mHffL1D5T1xWfpBWijFRZam2o8EfzayghWtzZkbWJmtUmOi4vDk+q2oLeRbautrPAUWZUiUS4mjmG2+eLIBK6MTeHuW9twom/UWAVIJtKQl0MPenKcdKUhWQmlmA5CfrdjaR3GB51K3/ye6YCX1XjoJpAKjuOtBzypQKis29xK3iRa0pNW9LUgCfKZPdhSHzNyurNf0lDwg6kpzLW7TxtiUXxqzTLsfbcPn1i9FMcvjqDBHQ/5PLmX5Bg0VkcDIZh6v+QhZHJxSbeoDBDrNT1hWYrnBoDRV19oKSlFrQ/angc3GQnDw/hdpe9QwmkknzV9o9Ji4DNlYQBpHbFGWirtJXDRN7An8Ch4hF/5+h3Y0N6M1a2Nyh98YXgyqyAC4Dz/2QNnVBCHHMvxgTFj9QwTE6AU/SBkfx54ustTVVrSXEpFTDJ71sUjbp1tilRAVdDg82V7ohUWmusqcSk+hcV1ldi4tNm4uOUhfWfHYk8hWPZJlrzy81nLZA9J6GTaWPK2I9eEDjM0KQ399uU3D1JRkAZAD3rK50tsOOeFRZdJaeoXuHrJ5QpnwVbeFKiEZNKKyajgQSULKuh91A9xeRuQz+Xa0zN6E1Mp/PT9Acykbfzs1CU1Xq1AoOvIj+dHFz3YKpNo5PP0tspn6vNhikHpt/xiKOuSUtT6oNHXrJPE6wNjQohwUSpyJ1EAVhYf7bmc8ED7qHD1OooURo3XLW/C6UskMv8VvrB5pVoUutI2VR2XuGYeGiZ/q6NAnZpsLfUxPPHZW41BVsDrDjAtclmZgv454kVrKytQW+kw6bE+nJ7iTOY2iTW+s6MF2zeuwDf//piHMpVJASoF34V7JVyrrKYqaoyey3nX+6knS3B+pDWq95+bmoeJRPkAyNpszJr0gwuaNrGEHhIbzn7r7hRu9J7LiZwHPH8nA+iS/8VEIqbE9XVHKuBJPPLru564xMO5Y1m9UqqyeKt0TTJw+tKhXhy9MKISqfS1xzHhYcFDVGdwrKuKBCJypLLVby7yZigP8yBXlH6b9ZtvOed+t0A5roWUklLUptPRb9PKhfLIXTehscacq69bPAAyQQN4S8rTH8W0YBlcosiJouIjB7Vu4XHj0VUBQAU9dr16HC31MbQvqTNiojkWHjZAQUFKkVF33U+ok8fLQBDHb93yJkUK1BCLZGUlAsCXbl+lWOJMVtOuvSfc9PSoQuGYkgKo9LsHxtSh6rfApY9YXkN15aBD3Ngmzpupzp0+l/p6Wbe8yZcxT/ZF+mBlBqwsLHz0/LDnNrh1rVOnUyY8ybXyZvegQhYQDqivf6m86d7g+LGd2zetRGONFyuvr19d5BriwVZXFVE3E71qC+BNkGLw7eLwpCoyoZSqqKPIQ5FcHv2kdtAYHPV5NUEu9fUjYXJkYtQte309UUwHppxrHTkmJcwtfy5SUoraT0xXC7lYXzrU66Qta2JaTABU4Gi7lpEkN6pO+SnbYoL4SZInPlMuMm5aHhZ6UAOA8VolyYz8Ntfu/ac8GX6yL/z5ua9szgoE0dqkj18PhsiFrPMuAEKxqqQpGwfPXlE+7O2bvNl/eubdkZ6hrOupKVhnSu/VLVg9iyxo3kyf04NGeh/9NrWftaXDujgHLx3qVZwr+nzy/6UbSpJjyb7Im6a03E0Hn5yDIFeB9MeagoZ+7gE+n9/hYazfIPk8tpOWNV0rel1OvS9BAXr+S7cdYzsmf7oHiqf1K0iB64ZDkOVdaFkQihowV1kwVWLRB9O0WPXrpykhJoyfSfd50WdMZew3wUBGSUorwe9UzrW5pGVM9MvOe242Vg6XbSEMya+yNq0eU6q4bKNMF4Zte6BOpjRteSCx5NJLh3o9RUxNZbt05eDH3hckfhtNDxr5KSk/xeVHLJR1G9QsS1356IFdP9HXv44MydU209/kQah/PowSMt2C9L8BhmK4MO850y3AD51DMVED6M+UriTT4R0018V2cfhJyaaQ6+K32DjpEh4VJo1Ypob7ZSDlGxTwux6bnqOD+2eTaqy/kwkrTPH1E6ngTAx1ps/map9ULqb05DBthm2r2ng3LGvIOS6zmSt9vQDetPrZzLt8bq5x8stMnOt7/bL8gtrmtw/yScn261/QeM6lz8VuW9hnzHa+giQohXzBKGo/kbn7T3z21sDFH0aRzmUh5CNSWQLw+JJnuxjCfi+f5+tpy3NV6EFtkUq7WJAnXTkB+XNymJRtWG6QQkuYuczHyJlrX+Qzg0i2ZiuF6G+h2lRopR2kqGHbdsH/27Bhgz1f8sU9B+32P91rt//pXvuLew6G+mzQ5w6fu2J/cc9B+/C5K4Vuqu979Hb5tXO+2qbLfI3b1Rj72bwz7HzNt+TbF9Pn59oXPvP5gz1XZa3a9tz2Tz5jWOh5B3DY9tGpC15RHz53xb73r35u3/vUgZyDe7UUXS7R2+XXzqulEMKOW67PzWb8S3HOws7XfEsh1kch+zbb7851POfy/XzGsNDzHqSoF7zro9BSTB/UXKWU2wbkvlrO5uo5X66oj4IUY33MZfxn+92rOedXc48tSJrTqyWzierO1+QWGwI0V8mFJZ0N1rTY+NSPkhRjfcxl/Gf73as556W6xxaURT0fCnEuSIKy1VeWspRltvKRsajnA8M4mxO1bPWVpSxlKaYsKEVdqgqxVK9LZSlLWT4asqAUdVkhlqUsZfmXKAuqwktZylKW0he/iixlmb2UFXVZylKWggpjSeS8KcvcZUG5PspSlrKUvpRqLGkhS9miLsu8S/lqPD9ytcaZsaRSTMpaqFJW1GWZdylfjedHyuP80ZGy66Ms8y7lq/H8SHmcPzqyoDITy1KWspTloypBmYmhXB+WZW21LOukZVm/tizr0cI2ryxlKUtZyhIkORW1ZVkRAN8D8AcAOgH8G8uyOovdsLKUpSxlKYsjYSzq3wXwa9u2z9i2PQXgvwC4t7jNKktZylKWslDCKOprAZwX/3/B/Z1HLMv6qmVZhy3LOnzp0qVCta8sZSlLWf7FSxhFbRl+lxWBtG37B7Ztb7Rte+PSpUvn3rKylKUsZSkLgHCK+gKAFeL/lwP4sDjNKUtZylKWsugSRlEfAtBhWdYqy7KqAPwhgH8obrPKUpaylKUslFA4asuytgH4SwARAM/Ytv2/5vj8JQA9s2xTC4DBWX63VKTch9KQch9KRz4K/Sh2H9pt2zb6jYuS8DIXsSzrsB/oe6FIuQ+lIeU+lI58FPpxNftQ5vooS1nKUpYSl7KiLktZylKWEpdSVNQ/uNoNKICU+1AaUu5D6chHoR9XrQ8l56MuS1nKUpayeKUULeqylKUsZSmLkLKiLktZylKWEpeSUdSlTKVqWdYzlmUNWJZ1TPxusWVZb1iW1e3+2yz+9pjbj5OWZd0lfr/Bsqz33L/9fy3LMqXnF6sPKyzL+kfLst63LOu4ZVk7Flo/LMuqtizrV5ZlveP24dsLrQ/i/RHLst62LGvvAu7DOff9Ry3LOrwQ+2FZ1iLLsl62LOsDd298vCT7YNv2Vf8PTiLNaQDXA6gC8A6AzqvdLtG+OwH8DoBj4nf/HwCPuj8/CuA/uj93uu2PAVjl9ivi/u1XAD4Ohz/lvwH4g3nsQxuA33F/bgBwym3rgumH+7569+dKAF0AbltIfRB9+WMALwDYuxDXk/v+cwBatN8tqH4A+BGAh92fqwAsKsU+zNuk5hisjwN4Xfz/YwAeu9rt0tp4HbyK+iSANvfnNgAnTW0H8LrbvzYAH4jf/xsAf30V+/P3AD69UPsBoBbAPwPYvND6AIcv56cAfh8ZRb2g+uC+8xyyFfWC6QeARgBn4YIqSrkPpeL6CEWlWmLyW7Zt9wGA++8y9/d+fbnW/Vn//byLZVnXAVgPxyJdUP1wXQZHAQwAeMO27QXXBzh0DP8LgLT43ULrA+CwaP7EsqwjlmV91f3dQurH9QAuAXjWdUPtsSyrDiXYh1JR1KGoVBeI+PWlJPpoWVY9gB8D+A+2bY8GfdTwu6veD9u2U7Ztr4Njlf6uZVlrAz5ecn2wLOtuAAO2bR8J+xXD7676PLhyu23bvwOn+tPXLMu6M+CzpdiPKByX5v9p2/Z6AAk4rg4/uWp9KBVFvRCpVH9jWVYbALj/Dri/9+vLBfdn/ffzJpZlVcJR0s/btv1f3V8vuH4AgG3bwwD+CcBWLKw+3A7gX1uWdQ5OtaTftyzr/4eF1QcAgG3bH7r/DgD4OzjVoBZSPy4AuODeygDgZTiKu+T6UCqKeiFSqf4DgAfdnx+E4/Pl7//QsqyYZVmrAHQA+JV7hYpblnWbGxF+QHyn6OK+82kA79u2/RfiTwumH5ZlLbUsa5H7cw2ALQA+WEh9sG37Mdu2l9u2fR2cdf7fbdv+nxZSHwDAsqw6y7Ia+DOAzwA4tpD6Ydt2P4DzlmXd6P7qUwBOlGQf5jP4kMOxvw0OEuE0gD+/2u3R2va3APoATMM5Pb8CYAmcgFC3++9i8fk/d/txEiL6C2AjnMV8GsBT0IIYRe7DHXCuY+8COOr+t20h9QPArQDedvtwDMA33d8vmD5o/fkkMsHEBdUHOP7dd9z/jnPPLsB+rANw2F1TrwBoLsU+lFPIy1KWspSlxKVUXB9lKUtZylIWHykr6rKUpSxlKXEpK+qylKUsZSlxKSvqspSlLGUpcSkr6rKUpSxlKXEpK+qylKUsZSlxKSvqspSlLGUpcfn/A8Kno8cpm8OHAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 因为数据是无序的，所以画出的点是乱的\n",
    "plt.scatter(range(len(Ytest)),Ytest,s=2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.14999,\n",
       " 0.14999,\n",
       " 0.225,\n",
       " 0.325,\n",
       " 0.35,\n",
       " 0.375,\n",
       " 0.388,\n",
       " 0.392,\n",
       " 0.394,\n",
       " 0.396,\n",
       " 0.4,\n",
       " 0.404,\n",
       " 0.409,\n",
       " 0.41,\n",
       " 0.43,\n",
       " 0.435,\n",
       " 0.437,\n",
       " 0.439,\n",
       " 0.44,\n",
       " 0.44,\n",
       " 0.444,\n",
       " 0.446,\n",
       " 0.45,\n",
       " 0.45,\n",
       " 0.45,\n",
       " 0.45,\n",
       " 0.455,\n",
       " 0.455,\n",
       " 0.455,\n",
       " 0.456,\n",
       " 0.462,\n",
       " 0.463,\n",
       " 0.471,\n",
       " 0.475,\n",
       " 0.478,\n",
       " 0.478,\n",
       " 0.481,\n",
       " 0.481,\n",
       " 0.483,\n",
       " 0.483,\n",
       " 0.485,\n",
       " 0.485,\n",
       " 0.488,\n",
       " 0.489,\n",
       " 0.49,\n",
       " 0.492,\n",
       " 0.494,\n",
       " 0.494,\n",
       " 0.494,\n",
       " 0.495,\n",
       " 0.496,\n",
       " 0.5,\n",
       " 0.5,\n",
       " 0.504,\n",
       " 0.505,\n",
       " 0.506,\n",
       " 0.506,\n",
       " 0.508,\n",
       " 0.508,\n",
       " 0.51,\n",
       " 0.516,\n",
       " 0.519,\n",
       " 0.52,\n",
       " 0.521,\n",
       " 0.523,\n",
       " 0.523,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.527,\n",
       " 0.527,\n",
       " 0.528,\n",
       " 0.529,\n",
       " 0.53,\n",
       " 0.531,\n",
       " 0.532,\n",
       " 0.534,\n",
       " 0.535,\n",
       " 0.535,\n",
       " 0.535,\n",
       " 0.538,\n",
       " 0.538,\n",
       " 0.539,\n",
       " 0.539,\n",
       " 0.539,\n",
       " 0.541,\n",
       " 0.541,\n",
       " 0.542,\n",
       " 0.542,\n",
       " 0.542,\n",
       " 0.543,\n",
       " 0.543,\n",
       " 0.544,\n",
       " 0.544,\n",
       " 0.546,\n",
       " 0.547,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.551,\n",
       " 0.553,\n",
       " 0.553,\n",
       " 0.553,\n",
       " 0.554,\n",
       " 0.554,\n",
       " 0.554,\n",
       " 0.555,\n",
       " 0.556,\n",
       " 0.556,\n",
       " 0.557,\n",
       " 0.558,\n",
       " 0.558,\n",
       " 0.559,\n",
       " 0.559,\n",
       " 0.559,\n",
       " 0.559,\n",
       " 0.56,\n",
       " 0.56,\n",
       " 0.562,\n",
       " 0.566,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.568,\n",
       " 0.57,\n",
       " 0.571,\n",
       " 0.572,\n",
       " 0.574,\n",
       " 0.574,\n",
       " 0.575,\n",
       " 0.575,\n",
       " 0.575,\n",
       " 0.575,\n",
       " 0.576,\n",
       " 0.577,\n",
       " 0.577,\n",
       " 0.577,\n",
       " 0.578,\n",
       " 0.579,\n",
       " 0.579,\n",
       " 0.579,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.581,\n",
       " 0.581,\n",
       " 0.581,\n",
       " 0.581,\n",
       " 0.582,\n",
       " 0.583,\n",
       " 0.583,\n",
       " 0.583,\n",
       " 0.583,\n",
       " 0.584,\n",
       " 0.586,\n",
       " 0.586,\n",
       " 0.587,\n",
       " 0.588,\n",
       " 0.588,\n",
       " 0.59,\n",
       " 0.59,\n",
       " 0.59,\n",
       " 0.59,\n",
       " 0.591,\n",
       " 0.591,\n",
       " 0.593,\n",
       " 0.593,\n",
       " 0.594,\n",
       " 0.594,\n",
       " 0.594,\n",
       " 0.594,\n",
       " 0.595,\n",
       " 0.596,\n",
       " 0.596,\n",
       " 0.597,\n",
       " 0.598,\n",
       " 0.598,\n",
       " 0.6,\n",
       " 0.6,\n",
       " 0.6,\n",
       " 0.602,\n",
       " 0.602,\n",
       " 0.603,\n",
       " 0.604,\n",
       " 0.604,\n",
       " 0.604,\n",
       " 0.605,\n",
       " 0.606,\n",
       " 0.606,\n",
       " 0.608,\n",
       " 0.608,\n",
       " 0.608,\n",
       " 0.609,\n",
       " 0.609,\n",
       " 0.611,\n",
       " 0.612,\n",
       " 0.612,\n",
       " 0.613,\n",
       " 0.613,\n",
       " 0.613,\n",
       " 0.614,\n",
       " 0.615,\n",
       " 0.616,\n",
       " 0.616,\n",
       " 0.616,\n",
       " 0.616,\n",
       " 0.618,\n",
       " 0.618,\n",
       " 0.618,\n",
       " 0.619,\n",
       " 0.619,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.621,\n",
       " 0.621,\n",
       " 0.621,\n",
       " 0.622,\n",
       " 0.623,\n",
       " 0.625,\n",
       " 0.625,\n",
       " 0.625,\n",
       " 0.627,\n",
       " 0.627,\n",
       " 0.628,\n",
       " 0.628,\n",
       " 0.629,\n",
       " 0.63,\n",
       " 0.63,\n",
       " 0.63,\n",
       " 0.63,\n",
       " 0.631,\n",
       " 0.631,\n",
       " 0.632,\n",
       " 0.632,\n",
       " 0.633,\n",
       " 0.633,\n",
       " 0.633,\n",
       " 0.634,\n",
       " 0.634,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.637,\n",
       " 0.637,\n",
       " 0.637,\n",
       " 0.637,\n",
       " 0.638,\n",
       " 0.639,\n",
       " 0.643,\n",
       " 0.644,\n",
       " 0.644,\n",
       " 0.646,\n",
       " 0.646,\n",
       " 0.646,\n",
       " 0.646,\n",
       " 0.647,\n",
       " 0.647,\n",
       " 0.647,\n",
       " 0.648,\n",
       " 0.65,\n",
       " 0.65,\n",
       " 0.65,\n",
       " 0.652,\n",
       " 0.652,\n",
       " 0.654,\n",
       " 0.654,\n",
       " 0.654,\n",
       " 0.655,\n",
       " 0.656,\n",
       " 0.656,\n",
       " 0.656,\n",
       " 0.656,\n",
       " 0.657,\n",
       " 0.658,\n",
       " 0.658,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.66,\n",
       " 0.661,\n",
       " 0.661,\n",
       " 0.662,\n",
       " 0.662,\n",
       " 0.663,\n",
       " 0.664,\n",
       " 0.664,\n",
       " 0.664,\n",
       " 0.668,\n",
       " 0.669,\n",
       " 0.669,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.672,\n",
       " 0.672,\n",
       " 0.672,\n",
       " 0.673,\n",
       " 0.673,\n",
       " 0.674,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.676,\n",
       " 0.676,\n",
       " 0.677,\n",
       " 0.678,\n",
       " 0.68,\n",
       " 0.68,\n",
       " 0.681,\n",
       " 0.682,\n",
       " 0.682,\n",
       " 0.682,\n",
       " 0.682,\n",
       " 0.683,\n",
       " 0.683,\n",
       " 0.683,\n",
       " 0.684,\n",
       " 0.684,\n",
       " 0.685,\n",
       " 0.685,\n",
       " 0.685,\n",
       " 0.685,\n",
       " 0.686,\n",
       " 0.686,\n",
       " 0.687,\n",
       " 0.688,\n",
       " 0.689,\n",
       " 0.689,\n",
       " 0.689,\n",
       " 0.69,\n",
       " 0.69,\n",
       " 0.691,\n",
       " 0.691,\n",
       " 0.692,\n",
       " 0.693,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.695,\n",
       " 0.695,\n",
       " 0.695,\n",
       " 0.696,\n",
       " 0.696,\n",
       " 0.697,\n",
       " 0.698,\n",
       " 0.699,\n",
       " 0.699,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.701,\n",
       " 0.701,\n",
       " 0.701,\n",
       " 0.702,\n",
       " 0.702,\n",
       " 0.703,\n",
       " 0.704,\n",
       " 0.704,\n",
       " 0.705,\n",
       " 0.705,\n",
       " 0.706,\n",
       " 0.707,\n",
       " 0.707,\n",
       " 0.707,\n",
       " 0.708,\n",
       " 0.709,\n",
       " 0.71,\n",
       " 0.71,\n",
       " 0.71,\n",
       " 0.711,\n",
       " 0.712,\n",
       " 0.712,\n",
       " 0.713,\n",
       " 0.713,\n",
       " 0.713,\n",
       " 0.714,\n",
       " 0.715,\n",
       " 0.716,\n",
       " 0.718,\n",
       " 0.719,\n",
       " 0.72,\n",
       " 0.72,\n",
       " 0.72,\n",
       " 0.721,\n",
       " 0.722,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.725,\n",
       " 0.725,\n",
       " 0.727,\n",
       " 0.727,\n",
       " 0.728,\n",
       " 0.729,\n",
       " 0.729,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.731,\n",
       " 0.731,\n",
       " 0.731,\n",
       " 0.731,\n",
       " 0.732,\n",
       " 0.733,\n",
       " 0.733,\n",
       " 0.734,\n",
       " 0.735,\n",
       " 0.735,\n",
       " 0.737,\n",
       " 0.738,\n",
       " 0.738,\n",
       " 0.738,\n",
       " 0.74,\n",
       " 0.74,\n",
       " 0.74,\n",
       " 0.741,\n",
       " 0.741,\n",
       " 0.741,\n",
       " 0.743,\n",
       " 0.746,\n",
       " 0.746,\n",
       " 0.747,\n",
       " 0.748,\n",
       " 0.749,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.752,\n",
       " 0.752,\n",
       " 0.754,\n",
       " 0.756,\n",
       " 0.756,\n",
       " 0.757,\n",
       " 0.759,\n",
       " 0.759,\n",
       " 0.759,\n",
       " 0.76,\n",
       " 0.76,\n",
       " 0.761,\n",
       " 0.762,\n",
       " 0.762,\n",
       " 0.762,\n",
       " 0.762,\n",
       " 0.763,\n",
       " 0.764,\n",
       " 0.764,\n",
       " 0.765,\n",
       " 0.766,\n",
       " 0.768,\n",
       " 0.769,\n",
       " 0.77,\n",
       " 0.771,\n",
       " 0.771,\n",
       " 0.771,\n",
       " 0.772,\n",
       " 0.772,\n",
       " 0.773,\n",
       " 0.774,\n",
       " 0.774,\n",
       " 0.775,\n",
       " 0.777,\n",
       " 0.777,\n",
       " 0.779,\n",
       " 0.78,\n",
       " 0.78,\n",
       " 0.78,\n",
       " 0.781,\n",
       " 0.783,\n",
       " 0.783,\n",
       " 0.785,\n",
       " 0.786,\n",
       " 0.786,\n",
       " 0.786,\n",
       " 0.786,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.79,\n",
       " 0.79,\n",
       " 0.79,\n",
       " 0.792,\n",
       " 0.792,\n",
       " 0.792,\n",
       " 0.795,\n",
       " 0.795,\n",
       " 0.795,\n",
       " 0.797,\n",
       " 0.797,\n",
       " 0.798,\n",
       " 0.799,\n",
       " 0.8,\n",
       " 0.801,\n",
       " 0.802,\n",
       " 0.803,\n",
       " 0.804,\n",
       " 0.804,\n",
       " 0.804,\n",
       " 0.806,\n",
       " 0.806,\n",
       " 0.808,\n",
       " 0.808,\n",
       " 0.808,\n",
       " 0.809,\n",
       " 0.81,\n",
       " 0.81,\n",
       " 0.811,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.814,\n",
       " 0.814,\n",
       " 0.816,\n",
       " 0.817,\n",
       " 0.817,\n",
       " 0.817,\n",
       " 0.821,\n",
       " 0.821,\n",
       " 0.821,\n",
       " 0.823,\n",
       " 0.823,\n",
       " 0.824,\n",
       " 0.825,\n",
       " 0.825,\n",
       " 0.825,\n",
       " 0.826,\n",
       " 0.827,\n",
       " 0.827,\n",
       " 0.828,\n",
       " 0.828,\n",
       " 0.828,\n",
       " 0.83,\n",
       " 0.83,\n",
       " 0.83,\n",
       " 0.831,\n",
       " 0.831,\n",
       " 0.831,\n",
       " 0.832,\n",
       " 0.832,\n",
       " 0.832,\n",
       " 0.833,\n",
       " 0.833,\n",
       " 0.834,\n",
       " 0.835,\n",
       " 0.835,\n",
       " 0.836,\n",
       " 0.836,\n",
       " 0.837,\n",
       " 0.838,\n",
       " 0.839,\n",
       " 0.839,\n",
       " 0.839,\n",
       " 0.839,\n",
       " 0.84,\n",
       " 0.841,\n",
       " 0.842,\n",
       " 0.842,\n",
       " 0.842,\n",
       " 0.843,\n",
       " 0.843,\n",
       " 0.844,\n",
       " 0.844,\n",
       " 0.844,\n",
       " 0.845,\n",
       " 0.845,\n",
       " 0.845,\n",
       " 0.845,\n",
       " 0.846,\n",
       " 0.846,\n",
       " 0.846,\n",
       " 0.846,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.848,\n",
       " 0.849,\n",
       " 0.849,\n",
       " 0.85,\n",
       " 0.85,\n",
       " 0.85,\n",
       " 0.851,\n",
       " 0.851,\n",
       " 0.851,\n",
       " 0.851,\n",
       " 0.852,\n",
       " 0.853,\n",
       " 0.853,\n",
       " 0.854,\n",
       " 0.854,\n",
       " 0.854,\n",
       " 0.855,\n",
       " 0.855,\n",
       " 0.855,\n",
       " 0.855,\n",
       " 0.856,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.858,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.861,\n",
       " 0.862,\n",
       " 0.863,\n",
       " 0.863,\n",
       " 0.863,\n",
       " 0.864,\n",
       " 0.864,\n",
       " 0.864,\n",
       " 0.864,\n",
       " 0.865,\n",
       " 0.865,\n",
       " 0.865,\n",
       " 0.866,\n",
       " 0.867,\n",
       " 0.867,\n",
       " 0.868,\n",
       " 0.869,\n",
       " 0.869,\n",
       " 0.869,\n",
       " 0.869,\n",
       " 0.87,\n",
       " 0.87,\n",
       " 0.871,\n",
       " 0.871,\n",
       " 0.872,\n",
       " 0.872,\n",
       " 0.872,\n",
       " 0.873,\n",
       " 0.874,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.876,\n",
       " 0.876,\n",
       " 0.877,\n",
       " 0.877,\n",
       " 0.878,\n",
       " 0.878,\n",
       " 0.878,\n",
       " 0.879,\n",
       " 0.879,\n",
       " 0.879,\n",
       " 0.88,\n",
       " 0.88,\n",
       " 0.881,\n",
       " 0.881,\n",
       " 0.882,\n",
       " 0.882,\n",
       " 0.882,\n",
       " 0.882,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.884,\n",
       " 0.885,\n",
       " 0.885,\n",
       " 0.886,\n",
       " 0.887,\n",
       " 0.887,\n",
       " 0.887,\n",
       " 0.888,\n",
       " 0.888,\n",
       " 0.888,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.89,\n",
       " 0.891,\n",
       " 0.892,\n",
       " 0.892,\n",
       " 0.892,\n",
       " 0.893,\n",
       " 0.893,\n",
       " 0.894,\n",
       " 0.895,\n",
       " 0.896,\n",
       " 0.896,\n",
       " 0.897,\n",
       " 0.897,\n",
       " 0.898,\n",
       " 0.898,\n",
       " 0.899,\n",
       " 0.9,\n",
       " 0.9,\n",
       " 0.9,\n",
       " 0.901,\n",
       " 0.901,\n",
       " 0.901,\n",
       " 0.902,\n",
       " 0.903,\n",
       " 0.903,\n",
       " 0.904,\n",
       " 0.904,\n",
       " 0.904,\n",
       " 0.905,\n",
       " 0.905,\n",
       " 0.905,\n",
       " 0.905,\n",
       " 0.906,\n",
       " 0.906,\n",
       " 0.906,\n",
       " 0.906,\n",
       " 0.907,\n",
       " 0.907,\n",
       " 0.908,\n",
       " 0.911,\n",
       " 0.911,\n",
       " 0.912,\n",
       " 0.914,\n",
       " 0.915,\n",
       " 0.915,\n",
       " 0.916,\n",
       " 0.916,\n",
       " 0.917,\n",
       " 0.917,\n",
       " 0.917,\n",
       " 0.917,\n",
       " 0.918,\n",
       " 0.918,\n",
       " 0.918,\n",
       " 0.919,\n",
       " 0.919,\n",
       " 0.919,\n",
       " 0.92,\n",
       " 0.92,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.924,\n",
       " 0.925,\n",
       " 0.925,\n",
       " 0.925,\n",
       " 0.925,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.927,\n",
       " 0.927,\n",
       " 0.927,\n",
       " 0.927,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.929,\n",
       " 0.93,\n",
       " 0.93,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.932,\n",
       " 0.932,\n",
       " 0.932,\n",
       " 0.932,\n",
       " 0.933,\n",
       " 0.933,\n",
       " 0.933,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.935,\n",
       " 0.935,\n",
       " 0.935,\n",
       " 0.936,\n",
       " 0.936,\n",
       " 0.936,\n",
       " 0.936,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.939,\n",
       " 0.939,\n",
       " 0.94,\n",
       " 0.94,\n",
       " 0.942,\n",
       " 0.942,\n",
       " 0.943,\n",
       " 0.943,\n",
       " 0.944,\n",
       " 0.944,\n",
       " 0.944,\n",
       " 0.945,\n",
       " 0.945,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.947,\n",
       " 0.947,\n",
       " 0.948,\n",
       " 0.948,\n",
       " 0.948,\n",
       " 0.949,\n",
       " 0.949,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.951,\n",
       " 0.952,\n",
       " 0.952,\n",
       " 0.953,\n",
       " 0.953,\n",
       " 0.953,\n",
       " 0.953,\n",
       " 0.954,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.956,\n",
       " 0.957,\n",
       " 0.957,\n",
       " 0.957,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.961,\n",
       " 0.961,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.963,\n",
       " 0.964,\n",
       " 0.964,\n",
       " 0.964,\n",
       " 0.964,\n",
       " 0.965,\n",
       " 0.965,\n",
       " 0.965,\n",
       " 0.966,\n",
       " 0.966,\n",
       " 0.966,\n",
       " 0.967,\n",
       " 0.967,\n",
       " 0.967,\n",
       " 0.968,\n",
       " 0.968,\n",
       " 0.969,\n",
       " 0.969,\n",
       " 0.969,\n",
       " 0.969,\n",
       " 0.97,\n",
       " 0.971,\n",
       " 0.972,\n",
       " 0.972,\n",
       " 0.973,\n",
       " 0.973,\n",
       " 0.973,\n",
       " 0.974,\n",
       " 0.974,\n",
       " 0.974,\n",
       " 0.974,\n",
       " 0.976,\n",
       " 0.976,\n",
       " 0.976,\n",
       " 0.976,\n",
       " 0.977,\n",
       " 0.977,\n",
       " 0.978,\n",
       " 0.978,\n",
       " 0.978,\n",
       " 0.979,\n",
       " 0.979,\n",
       " ...]"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sorted(Ytest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(range(len(Ytest)),sorted(Ytest),s=2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.967, 0.616, 2.298, ..., 2.457, 1.875, 0.683])"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  预测值与真实值的对应关系  如何匹配？\n",
    "Ytest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.14999,\n",
       " 0.14999,\n",
       " 0.225,\n",
       " 0.325,\n",
       " 0.35,\n",
       " 0.375,\n",
       " 0.388,\n",
       " 0.392,\n",
       " 0.394,\n",
       " 0.396,\n",
       " 0.4,\n",
       " 0.404,\n",
       " 0.409,\n",
       " 0.41,\n",
       " 0.43,\n",
       " 0.435,\n",
       " 0.437,\n",
       " 0.439,\n",
       " 0.44,\n",
       " 0.44,\n",
       " 0.444,\n",
       " 0.446,\n",
       " 0.45,\n",
       " 0.45,\n",
       " 0.45,\n",
       " 0.45,\n",
       " 0.455,\n",
       " 0.455,\n",
       " 0.455,\n",
       " 0.456,\n",
       " 0.462,\n",
       " 0.463,\n",
       " 0.471,\n",
       " 0.475,\n",
       " 0.478,\n",
       " 0.478,\n",
       " 0.481,\n",
       " 0.481,\n",
       " 0.483,\n",
       " 0.483,\n",
       " 0.485,\n",
       " 0.485,\n",
       " 0.488,\n",
       " 0.489,\n",
       " 0.49,\n",
       " 0.492,\n",
       " 0.494,\n",
       " 0.494,\n",
       " 0.494,\n",
       " 0.495,\n",
       " 0.496,\n",
       " 0.5,\n",
       " 0.5,\n",
       " 0.504,\n",
       " 0.505,\n",
       " 0.506,\n",
       " 0.506,\n",
       " 0.508,\n",
       " 0.508,\n",
       " 0.51,\n",
       " 0.516,\n",
       " 0.519,\n",
       " 0.52,\n",
       " 0.521,\n",
       " 0.523,\n",
       " 0.523,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.527,\n",
       " 0.527,\n",
       " 0.528,\n",
       " 0.529,\n",
       " 0.53,\n",
       " 0.531,\n",
       " 0.532,\n",
       " 0.534,\n",
       " 0.535,\n",
       " 0.535,\n",
       " 0.535,\n",
       " 0.538,\n",
       " 0.538,\n",
       " 0.539,\n",
       " 0.539,\n",
       " 0.539,\n",
       " 0.541,\n",
       " 0.541,\n",
       " 0.542,\n",
       " 0.542,\n",
       " 0.542,\n",
       " 0.543,\n",
       " 0.543,\n",
       " 0.544,\n",
       " 0.544,\n",
       " 0.546,\n",
       " 0.547,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.551,\n",
       " 0.553,\n",
       " 0.553,\n",
       " 0.553,\n",
       " 0.554,\n",
       " 0.554,\n",
       " 0.554,\n",
       " 0.555,\n",
       " 0.556,\n",
       " 0.556,\n",
       " 0.557,\n",
       " 0.558,\n",
       " 0.558,\n",
       " 0.559,\n",
       " 0.559,\n",
       " 0.559,\n",
       " 0.559,\n",
       " 0.56,\n",
       " 0.56,\n",
       " 0.562,\n",
       " 0.566,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.568,\n",
       " 0.57,\n",
       " 0.571,\n",
       " 0.572,\n",
       " 0.574,\n",
       " 0.574,\n",
       " 0.575,\n",
       " 0.575,\n",
       " 0.575,\n",
       " 0.575,\n",
       " 0.576,\n",
       " 0.577,\n",
       " 0.577,\n",
       " 0.577,\n",
       " 0.578,\n",
       " 0.579,\n",
       " 0.579,\n",
       " 0.579,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.581,\n",
       " 0.581,\n",
       " 0.581,\n",
       " 0.581,\n",
       " 0.582,\n",
       " 0.583,\n",
       " 0.583,\n",
       " 0.583,\n",
       " 0.583,\n",
       " 0.584,\n",
       " 0.586,\n",
       " 0.586,\n",
       " 0.587,\n",
       " 0.588,\n",
       " 0.588,\n",
       " 0.59,\n",
       " 0.59,\n",
       " 0.59,\n",
       " 0.59,\n",
       " 0.591,\n",
       " 0.591,\n",
       " 0.593,\n",
       " 0.593,\n",
       " 0.594,\n",
       " 0.594,\n",
       " 0.594,\n",
       " 0.594,\n",
       " 0.595,\n",
       " 0.596,\n",
       " 0.596,\n",
       " 0.597,\n",
       " 0.598,\n",
       " 0.598,\n",
       " 0.6,\n",
       " 0.6,\n",
       " 0.6,\n",
       " 0.602,\n",
       " 0.602,\n",
       " 0.603,\n",
       " 0.604,\n",
       " 0.604,\n",
       " 0.604,\n",
       " 0.605,\n",
       " 0.606,\n",
       " 0.606,\n",
       " 0.608,\n",
       " 0.608,\n",
       " 0.608,\n",
       " 0.609,\n",
       " 0.609,\n",
       " 0.611,\n",
       " 0.612,\n",
       " 0.612,\n",
       " 0.613,\n",
       " 0.613,\n",
       " 0.613,\n",
       " 0.614,\n",
       " 0.615,\n",
       " 0.616,\n",
       " 0.616,\n",
       " 0.616,\n",
       " 0.616,\n",
       " 0.618,\n",
       " 0.618,\n",
       " 0.618,\n",
       " 0.619,\n",
       " 0.619,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.621,\n",
       " 0.621,\n",
       " 0.621,\n",
       " 0.622,\n",
       " 0.623,\n",
       " 0.625,\n",
       " 0.625,\n",
       " 0.625,\n",
       " 0.627,\n",
       " 0.627,\n",
       " 0.628,\n",
       " 0.628,\n",
       " 0.629,\n",
       " 0.63,\n",
       " 0.63,\n",
       " 0.63,\n",
       " 0.63,\n",
       " 0.631,\n",
       " 0.631,\n",
       " 0.632,\n",
       " 0.632,\n",
       " 0.633,\n",
       " 0.633,\n",
       " 0.633,\n",
       " 0.634,\n",
       " 0.634,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.637,\n",
       " 0.637,\n",
       " 0.637,\n",
       " 0.637,\n",
       " 0.638,\n",
       " 0.639,\n",
       " 0.643,\n",
       " 0.644,\n",
       " 0.644,\n",
       " 0.646,\n",
       " 0.646,\n",
       " 0.646,\n",
       " 0.646,\n",
       " 0.647,\n",
       " 0.647,\n",
       " 0.647,\n",
       " 0.648,\n",
       " 0.65,\n",
       " 0.65,\n",
       " 0.65,\n",
       " 0.652,\n",
       " 0.652,\n",
       " 0.654,\n",
       " 0.654,\n",
       " 0.654,\n",
       " 0.655,\n",
       " 0.656,\n",
       " 0.656,\n",
       " 0.656,\n",
       " 0.656,\n",
       " 0.657,\n",
       " 0.658,\n",
       " 0.658,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.66,\n",
       " 0.661,\n",
       " 0.661,\n",
       " 0.662,\n",
       " 0.662,\n",
       " 0.663,\n",
       " 0.664,\n",
       " 0.664,\n",
       " 0.664,\n",
       " 0.668,\n",
       " 0.669,\n",
       " 0.669,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.672,\n",
       " 0.672,\n",
       " 0.672,\n",
       " 0.673,\n",
       " 0.673,\n",
       " 0.674,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.676,\n",
       " 0.676,\n",
       " 0.677,\n",
       " 0.678,\n",
       " 0.68,\n",
       " 0.68,\n",
       " 0.681,\n",
       " 0.682,\n",
       " 0.682,\n",
       " 0.682,\n",
       " 0.682,\n",
       " 0.683,\n",
       " 0.683,\n",
       " 0.683,\n",
       " 0.684,\n",
       " 0.684,\n",
       " 0.685,\n",
       " 0.685,\n",
       " 0.685,\n",
       " 0.685,\n",
       " 0.686,\n",
       " 0.686,\n",
       " 0.687,\n",
       " 0.688,\n",
       " 0.689,\n",
       " 0.689,\n",
       " 0.689,\n",
       " 0.69,\n",
       " 0.69,\n",
       " 0.691,\n",
       " 0.691,\n",
       " 0.692,\n",
       " 0.693,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.695,\n",
       " 0.695,\n",
       " 0.695,\n",
       " 0.696,\n",
       " 0.696,\n",
       " 0.697,\n",
       " 0.698,\n",
       " 0.699,\n",
       " 0.699,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.701,\n",
       " 0.701,\n",
       " 0.701,\n",
       " 0.702,\n",
       " 0.702,\n",
       " 0.703,\n",
       " 0.704,\n",
       " 0.704,\n",
       " 0.705,\n",
       " 0.705,\n",
       " 0.706,\n",
       " 0.707,\n",
       " 0.707,\n",
       " 0.707,\n",
       " 0.708,\n",
       " 0.709,\n",
       " 0.71,\n",
       " 0.71,\n",
       " 0.71,\n",
       " 0.711,\n",
       " 0.712,\n",
       " 0.712,\n",
       " 0.713,\n",
       " 0.713,\n",
       " 0.713,\n",
       " 0.714,\n",
       " 0.715,\n",
       " 0.716,\n",
       " 0.718,\n",
       " 0.719,\n",
       " 0.72,\n",
       " 0.72,\n",
       " 0.72,\n",
       " 0.721,\n",
       " 0.722,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.725,\n",
       " 0.725,\n",
       " 0.727,\n",
       " 0.727,\n",
       " 0.728,\n",
       " 0.729,\n",
       " 0.729,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.731,\n",
       " 0.731,\n",
       " 0.731,\n",
       " 0.731,\n",
       " 0.732,\n",
       " 0.733,\n",
       " 0.733,\n",
       " 0.734,\n",
       " 0.735,\n",
       " 0.735,\n",
       " 0.737,\n",
       " 0.738,\n",
       " 0.738,\n",
       " 0.738,\n",
       " 0.74,\n",
       " 0.74,\n",
       " 0.74,\n",
       " 0.741,\n",
       " 0.741,\n",
       " 0.741,\n",
       " 0.743,\n",
       " 0.746,\n",
       " 0.746,\n",
       " 0.747,\n",
       " 0.748,\n",
       " 0.749,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.752,\n",
       " 0.752,\n",
       " 0.754,\n",
       " 0.756,\n",
       " 0.756,\n",
       " 0.757,\n",
       " 0.759,\n",
       " 0.759,\n",
       " 0.759,\n",
       " 0.76,\n",
       " 0.76,\n",
       " 0.761,\n",
       " 0.762,\n",
       " 0.762,\n",
       " 0.762,\n",
       " 0.762,\n",
       " 0.763,\n",
       " 0.764,\n",
       " 0.764,\n",
       " 0.765,\n",
       " 0.766,\n",
       " 0.768,\n",
       " 0.769,\n",
       " 0.77,\n",
       " 0.771,\n",
       " 0.771,\n",
       " 0.771,\n",
       " 0.772,\n",
       " 0.772,\n",
       " 0.773,\n",
       " 0.774,\n",
       " 0.774,\n",
       " 0.775,\n",
       " 0.777,\n",
       " 0.777,\n",
       " 0.779,\n",
       " 0.78,\n",
       " 0.78,\n",
       " 0.78,\n",
       " 0.781,\n",
       " 0.783,\n",
       " 0.783,\n",
       " 0.785,\n",
       " 0.786,\n",
       " 0.786,\n",
       " 0.786,\n",
       " 0.786,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.79,\n",
       " 0.79,\n",
       " 0.79,\n",
       " 0.792,\n",
       " 0.792,\n",
       " 0.792,\n",
       " 0.795,\n",
       " 0.795,\n",
       " 0.795,\n",
       " 0.797,\n",
       " 0.797,\n",
       " 0.798,\n",
       " 0.799,\n",
       " 0.8,\n",
       " 0.801,\n",
       " 0.802,\n",
       " 0.803,\n",
       " 0.804,\n",
       " 0.804,\n",
       " 0.804,\n",
       " 0.806,\n",
       " 0.806,\n",
       " 0.808,\n",
       " 0.808,\n",
       " 0.808,\n",
       " 0.809,\n",
       " 0.81,\n",
       " 0.81,\n",
       " 0.811,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.814,\n",
       " 0.814,\n",
       " 0.816,\n",
       " 0.817,\n",
       " 0.817,\n",
       " 0.817,\n",
       " 0.821,\n",
       " 0.821,\n",
       " 0.821,\n",
       " 0.823,\n",
       " 0.823,\n",
       " 0.824,\n",
       " 0.825,\n",
       " 0.825,\n",
       " 0.825,\n",
       " 0.826,\n",
       " 0.827,\n",
       " 0.827,\n",
       " 0.828,\n",
       " 0.828,\n",
       " 0.828,\n",
       " 0.83,\n",
       " 0.83,\n",
       " 0.83,\n",
       " 0.831,\n",
       " 0.831,\n",
       " 0.831,\n",
       " 0.832,\n",
       " 0.832,\n",
       " 0.832,\n",
       " 0.833,\n",
       " 0.833,\n",
       " 0.834,\n",
       " 0.835,\n",
       " 0.835,\n",
       " 0.836,\n",
       " 0.836,\n",
       " 0.837,\n",
       " 0.838,\n",
       " 0.839,\n",
       " 0.839,\n",
       " 0.839,\n",
       " 0.839,\n",
       " 0.84,\n",
       " 0.841,\n",
       " 0.842,\n",
       " 0.842,\n",
       " 0.842,\n",
       " 0.843,\n",
       " 0.843,\n",
       " 0.844,\n",
       " 0.844,\n",
       " 0.844,\n",
       " 0.845,\n",
       " 0.845,\n",
       " 0.845,\n",
       " 0.845,\n",
       " 0.846,\n",
       " 0.846,\n",
       " 0.846,\n",
       " 0.846,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.848,\n",
       " 0.849,\n",
       " 0.849,\n",
       " 0.85,\n",
       " 0.85,\n",
       " 0.85,\n",
       " 0.851,\n",
       " 0.851,\n",
       " 0.851,\n",
       " 0.851,\n",
       " 0.852,\n",
       " 0.853,\n",
       " 0.853,\n",
       " 0.854,\n",
       " 0.854,\n",
       " 0.854,\n",
       " 0.855,\n",
       " 0.855,\n",
       " 0.855,\n",
       " 0.855,\n",
       " 0.856,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.858,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.861,\n",
       " 0.862,\n",
       " 0.863,\n",
       " 0.863,\n",
       " 0.863,\n",
       " 0.864,\n",
       " 0.864,\n",
       " 0.864,\n",
       " 0.864,\n",
       " 0.865,\n",
       " 0.865,\n",
       " 0.865,\n",
       " 0.866,\n",
       " 0.867,\n",
       " 0.867,\n",
       " 0.868,\n",
       " 0.869,\n",
       " 0.869,\n",
       " 0.869,\n",
       " 0.869,\n",
       " 0.87,\n",
       " 0.87,\n",
       " 0.871,\n",
       " 0.871,\n",
       " 0.872,\n",
       " 0.872,\n",
       " 0.872,\n",
       " 0.873,\n",
       " 0.874,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.876,\n",
       " 0.876,\n",
       " 0.877,\n",
       " 0.877,\n",
       " 0.878,\n",
       " 0.878,\n",
       " 0.878,\n",
       " 0.879,\n",
       " 0.879,\n",
       " 0.879,\n",
       " 0.88,\n",
       " 0.88,\n",
       " 0.881,\n",
       " 0.881,\n",
       " 0.882,\n",
       " 0.882,\n",
       " 0.882,\n",
       " 0.882,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.884,\n",
       " 0.885,\n",
       " 0.885,\n",
       " 0.886,\n",
       " 0.887,\n",
       " 0.887,\n",
       " 0.887,\n",
       " 0.888,\n",
       " 0.888,\n",
       " 0.888,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.89,\n",
       " 0.891,\n",
       " 0.892,\n",
       " 0.892,\n",
       " 0.892,\n",
       " 0.893,\n",
       " 0.893,\n",
       " 0.894,\n",
       " 0.895,\n",
       " 0.896,\n",
       " 0.896,\n",
       " 0.897,\n",
       " 0.897,\n",
       " 0.898,\n",
       " 0.898,\n",
       " 0.899,\n",
       " 0.9,\n",
       " 0.9,\n",
       " 0.9,\n",
       " 0.901,\n",
       " 0.901,\n",
       " 0.901,\n",
       " 0.902,\n",
       " 0.903,\n",
       " 0.903,\n",
       " 0.904,\n",
       " 0.904,\n",
       " 0.904,\n",
       " 0.905,\n",
       " 0.905,\n",
       " 0.905,\n",
       " 0.905,\n",
       " 0.906,\n",
       " 0.906,\n",
       " 0.906,\n",
       " 0.906,\n",
       " 0.907,\n",
       " 0.907,\n",
       " 0.908,\n",
       " 0.911,\n",
       " 0.911,\n",
       " 0.912,\n",
       " 0.914,\n",
       " 0.915,\n",
       " 0.915,\n",
       " 0.916,\n",
       " 0.916,\n",
       " 0.917,\n",
       " 0.917,\n",
       " 0.917,\n",
       " 0.917,\n",
       " 0.918,\n",
       " 0.918,\n",
       " 0.918,\n",
       " 0.919,\n",
       " 0.919,\n",
       " 0.919,\n",
       " 0.92,\n",
       " 0.92,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.924,\n",
       " 0.925,\n",
       " 0.925,\n",
       " 0.925,\n",
       " 0.925,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.927,\n",
       " 0.927,\n",
       " 0.927,\n",
       " 0.927,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.929,\n",
       " 0.93,\n",
       " 0.93,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.932,\n",
       " 0.932,\n",
       " 0.932,\n",
       " 0.932,\n",
       " 0.933,\n",
       " 0.933,\n",
       " 0.933,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.935,\n",
       " 0.935,\n",
       " 0.935,\n",
       " 0.936,\n",
       " 0.936,\n",
       " 0.936,\n",
       " 0.936,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.939,\n",
       " 0.939,\n",
       " 0.94,\n",
       " 0.94,\n",
       " 0.942,\n",
       " 0.942,\n",
       " 0.943,\n",
       " 0.943,\n",
       " 0.944,\n",
       " 0.944,\n",
       " 0.944,\n",
       " 0.945,\n",
       " 0.945,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.947,\n",
       " 0.947,\n",
       " 0.948,\n",
       " 0.948,\n",
       " 0.948,\n",
       " 0.949,\n",
       " 0.949,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.951,\n",
       " 0.952,\n",
       " 0.952,\n",
       " 0.953,\n",
       " 0.953,\n",
       " 0.953,\n",
       " 0.953,\n",
       " 0.954,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.956,\n",
       " 0.957,\n",
       " 0.957,\n",
       " 0.957,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.961,\n",
       " 0.961,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.963,\n",
       " 0.964,\n",
       " 0.964,\n",
       " 0.964,\n",
       " 0.964,\n",
       " 0.965,\n",
       " 0.965,\n",
       " 0.965,\n",
       " 0.966,\n",
       " 0.966,\n",
       " 0.966,\n",
       " 0.967,\n",
       " 0.967,\n",
       " 0.967,\n",
       " 0.968,\n",
       " 0.968,\n",
       " 0.969,\n",
       " 0.969,\n",
       " 0.969,\n",
       " 0.969,\n",
       " 0.97,\n",
       " 0.971,\n",
       " 0.972,\n",
       " 0.972,\n",
       " 0.973,\n",
       " 0.973,\n",
       " 0.973,\n",
       " 0.974,\n",
       " 0.974,\n",
       " 0.974,\n",
       " 0.974,\n",
       " 0.976,\n",
       " 0.976,\n",
       " 0.976,\n",
       " 0.976,\n",
       " 0.977,\n",
       " 0.977,\n",
       " 0.978,\n",
       " 0.978,\n",
       " 0.978,\n",
       " 0.979,\n",
       " 0.979,\n",
       " ...]"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sorted(Ytest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1.51384887, 0.46566247, 2.2567733 , ..., 2.11885803, 1.76968187,\n",
       "       0.73219077])"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2477, 4318, 4930, ..., 2806, 2786, 3736])"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argsort(Ytest) #得到排序之后的索引序列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.14999"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Ytest[2477] #索引为2477的真实值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5948, 3374,  824, ..., 4451, 4979, 5796])"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argsort(y_test_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.0539979577165823"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test_pred[2477]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1.05399796, 0.19034538, 1.92338573, ..., 3.43677069, 2.23272962,\n",
       "       5.19172028])"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test_pred[np.argsort(Ytest)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#将排序好的数据再进行绘图\n",
    "plt.scatter(range(len(Ytest)),sorted(Ytest),s=2,label='True')\n",
    "plt.scatter(range(len(Ytest)),y_test_pred[np.argsort(Ytest)],s=2,c='r',label='Predict',alpha=0.3)\n",
    "\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['MedInc',\n",
       " 'HouseAge',\n",
       " 'AveRooms',\n",
       " 'AveBedrms',\n",
       " 'Population',\n",
       " 'AveOccup',\n",
       " 'Latitude',\n",
       " 'Longitude']"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "housevalue.feature_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MedInc</th>\n",
       "      <th>HouseAge</th>\n",
       "      <th>AveRooms</th>\n",
       "      <th>AveBedrms</th>\n",
       "      <th>Population</th>\n",
       "      <th>AveOccup</th>\n",
       "      <th>Latitude</th>\n",
       "      <th>Longitude</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>8.3252</td>\n",
       "      <td>41.0</td>\n",
       "      <td>6.984127</td>\n",
       "      <td>1.023810</td>\n",
       "      <td>322.0</td>\n",
       "      <td>2.555556</td>\n",
       "      <td>37.88</td>\n",
       "      <td>-122.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>8.3014</td>\n",
       "      <td>21.0</td>\n",
       "      <td>6.238137</td>\n",
       "      <td>0.971880</td>\n",
       "      <td>2401.0</td>\n",
       "      <td>2.109842</td>\n",
       "      <td>37.86</td>\n",
       "      <td>-122.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>7.2574</td>\n",
       "      <td>52.0</td>\n",
       "      <td>8.288136</td>\n",
       "      <td>1.073446</td>\n",
       "      <td>496.0</td>\n",
       "      <td>2.802260</td>\n",
       "      <td>37.85</td>\n",
       "      <td>-122.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5.6431</td>\n",
       "      <td>52.0</td>\n",
       "      <td>5.817352</td>\n",
       "      <td>1.073059</td>\n",
       "      <td>558.0</td>\n",
       "      <td>2.547945</td>\n",
       "      <td>37.85</td>\n",
       "      <td>-122.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3.8462</td>\n",
       "      <td>52.0</td>\n",
       "      <td>6.281853</td>\n",
       "      <td>1.081081</td>\n",
       "      <td>565.0</td>\n",
       "      <td>2.181467</td>\n",
       "      <td>37.85</td>\n",
       "      <td>-122.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20635</th>\n",
       "      <td>1.5603</td>\n",
       "      <td>25.0</td>\n",
       "      <td>5.045455</td>\n",
       "      <td>1.133333</td>\n",
       "      <td>845.0</td>\n",
       "      <td>2.560606</td>\n",
       "      <td>39.48</td>\n",
       "      <td>-121.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20636</th>\n",
       "      <td>2.5568</td>\n",
       "      <td>18.0</td>\n",
       "      <td>6.114035</td>\n",
       "      <td>1.315789</td>\n",
       "      <td>356.0</td>\n",
       "      <td>3.122807</td>\n",
       "      <td>39.49</td>\n",
       "      <td>-121.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20637</th>\n",
       "      <td>1.7000</td>\n",
       "      <td>17.0</td>\n",
       "      <td>5.205543</td>\n",
       "      <td>1.120092</td>\n",
       "      <td>1007.0</td>\n",
       "      <td>2.325635</td>\n",
       "      <td>39.43</td>\n",
       "      <td>-121.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20638</th>\n",
       "      <td>1.8672</td>\n",
       "      <td>18.0</td>\n",
       "      <td>5.329513</td>\n",
       "      <td>1.171920</td>\n",
       "      <td>741.0</td>\n",
       "      <td>2.123209</td>\n",
       "      <td>39.43</td>\n",
       "      <td>-121.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20639</th>\n",
       "      <td>2.3886</td>\n",
       "      <td>16.0</td>\n",
       "      <td>5.254717</td>\n",
       "      <td>1.162264</td>\n",
       "      <td>1387.0</td>\n",
       "      <td>2.616981</td>\n",
       "      <td>39.37</td>\n",
       "      <td>-121.24</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>20640 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       MedInc  HouseAge  AveRooms  AveBedrms  Population  AveOccup  Latitude  \\\n",
       "0      8.3252      41.0  6.984127   1.023810       322.0  2.555556     37.88   \n",
       "1      8.3014      21.0  6.238137   0.971880      2401.0  2.109842     37.86   \n",
       "2      7.2574      52.0  8.288136   1.073446       496.0  2.802260     37.85   \n",
       "3      5.6431      52.0  5.817352   1.073059       558.0  2.547945     37.85   \n",
       "4      3.8462      52.0  6.281853   1.081081       565.0  2.181467     37.85   \n",
       "...       ...       ...       ...        ...         ...       ...       ...   \n",
       "20635  1.5603      25.0  5.045455   1.133333       845.0  2.560606     39.48   \n",
       "20636  2.5568      18.0  6.114035   1.315789       356.0  3.122807     39.49   \n",
       "20637  1.7000      17.0  5.205543   1.120092      1007.0  2.325635     39.43   \n",
       "20638  1.8672      18.0  5.329513   1.171920       741.0  2.123209     39.43   \n",
       "20639  2.3886      16.0  5.254717   1.162264      1387.0  2.616981     39.37   \n",
       "\n",
       "       Longitude  \n",
       "0        -122.23  \n",
       "1        -122.22  \n",
       "2        -122.24  \n",
       "3        -122.25  \n",
       "4        -122.25  \n",
       "...          ...  \n",
       "20635    -121.09  \n",
       "20636    -121.21  \n",
       "20637    -121.22  \n",
       "20638    -121.32  \n",
       "20639    -121.24  \n",
       "\n",
       "[20640 rows x 8 columns]"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [],
   "source": [
    "X.columns = ['住户的收入中位数','房屋使用年代的中位数','该街区平均的房间数目',\n",
    "             '该街区平均的卧室数目','街区人口','平均入住率','街区的纬度','街区的经度']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import PolynomialFeatures"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [],
   "source": [
    "poly = PolynomialFeatures(degree=2).fit(X,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['1',\n",
       " '住户的收入中位数',\n",
       " '房屋使用年代的中位数',\n",
       " '该街区平均的房间数目',\n",
       " '该街区平均的卧室数目',\n",
       " '街区人口',\n",
       " '平均入住率',\n",
       " '街区的纬度',\n",
       " '街区的经度',\n",
       " '住户的收入中位数^2',\n",
       " '住户的收入中位数 房屋使用年代的中位数',\n",
       " '住户的收入中位数 该街区平均的房间数目',\n",
       " '住户的收入中位数 该街区平均的卧室数目',\n",
       " '住户的收入中位数 街区人口',\n",
       " '住户的收入中位数 平均入住率',\n",
       " '住户的收入中位数 街区的纬度',\n",
       " '住户的收入中位数 街区的经度',\n",
       " '房屋使用年代的中位数^2',\n",
       " '房屋使用年代的中位数 该街区平均的房间数目',\n",
       " '房屋使用年代的中位数 该街区平均的卧室数目',\n",
       " '房屋使用年代的中位数 街区人口',\n",
       " '房屋使用年代的中位数 平均入住率',\n",
       " '房屋使用年代的中位数 街区的纬度',\n",
       " '房屋使用年代的中位数 街区的经度',\n",
       " '该街区平均的房间数目^2',\n",
       " '该街区平均的房间数目 该街区平均的卧室数目',\n",
       " '该街区平均的房间数目 街区人口',\n",
       " '该街区平均的房间数目 平均入住率',\n",
       " '该街区平均的房间数目 街区的纬度',\n",
       " '该街区平均的房间数目 街区的经度',\n",
       " '该街区平均的卧室数目^2',\n",
       " '该街区平均的卧室数目 街区人口',\n",
       " '该街区平均的卧室数目 平均入住率',\n",
       " '该街区平均的卧室数目 街区的纬度',\n",
       " '该街区平均的卧室数目 街区的经度',\n",
       " '街区人口^2',\n",
       " '街区人口 平均入住率',\n",
       " '街区人口 街区的纬度',\n",
       " '街区人口 街区的经度',\n",
       " '平均入住率^2',\n",
       " '平均入住率 街区的纬度',\n",
       " '平均入住率 街区的经度',\n",
       " '街区的纬度^2',\n",
       " '街区的纬度 街区的经度',\n",
       " '街区的经度^2']"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly.get_feature_names(X.columns)#通过多项式构造列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_ = poly.transform(X)  #多项式变化后"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.00000000e+00,  8.32520000e+00,  4.10000000e+01, ...,\n",
       "         1.43489440e+03, -4.63007240e+03,  1.49401729e+04],\n",
       "       [ 1.00000000e+00,  8.30140000e+00,  2.10000000e+01, ...,\n",
       "         1.43337960e+03, -4.62724920e+03,  1.49377284e+04],\n",
       "       [ 1.00000000e+00,  7.25740000e+00,  5.20000000e+01, ...,\n",
       "         1.43262250e+03, -4.62678400e+03,  1.49426176e+04],\n",
       "       ...,\n",
       "       [ 1.00000000e+00,  1.70000000e+00,  1.70000000e+01, ...,\n",
       "         1.55472490e+03, -4.77970460e+03,  1.46942884e+04],\n",
       "       [ 1.00000000e+00,  1.86720000e+00,  1.80000000e+01, ...,\n",
       "         1.55472490e+03, -4.78364760e+03,  1.47185424e+04],\n",
       "       [ 1.00000000e+00,  2.38860000e+00,  1.60000000e+01, ...,\n",
       "         1.54999690e+03, -4.77321880e+03,  1.46991376e+04]])"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [],
   "source": [
    "reg = LinearRegression().fit(X_,y)#使用转化后的数据进行建模训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 5.91954814e-08, -1.12430256e+01, -8.48898555e-01,  6.44105940e+00,\n",
       "       -3.15913308e+01,  4.06090678e-04,  1.00386233e+00,  8.70568192e+00,\n",
       "        5.88063275e+00, -3.13081210e-02,  1.85994754e-03,  4.33020364e-02,\n",
       "       -1.86142288e-01,  5.72831401e-05, -2.59019451e-03, -1.52505719e-01,\n",
       "       -1.44242945e-01,  2.11725362e-04, -1.26218981e-03,  1.06115037e-02,\n",
       "        2.81885312e-06, -1.81716946e-03, -1.00690374e-02, -9.99950183e-03,\n",
       "        7.26947768e-03, -6.89064378e-02, -6.82365591e-05,  2.68878839e-02,\n",
       "        8.75089954e-02,  8.22890400e-02,  1.60180957e-01,  5.14264000e-04,\n",
       "       -8.71911374e-02, -4.37043037e-01, -4.04150612e-01,  2.73779156e-09,\n",
       "        1.91426752e-05,  2.29529831e-05,  1.46567757e-05,  8.71561034e-05,\n",
       "        2.13344592e-02,  1.62412938e-02,  6.18867357e-02,  1.08107173e-01,\n",
       "        3.99077351e-02])"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "reg.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('1', 5.919548140983325e-08),\n",
       " ('住户的收入中位数', -11.243025601117052),\n",
       " ('房屋使用年代的中位数', -0.8488985550865555),\n",
       " ('该街区平均的房间数目', 6.4410594008838045),\n",
       " ('该街区平均的卧室数目', -31.591330845036552),\n",
       " ('街区人口', 0.000406090678218692),\n",
       " ('平均入住率', 1.003862325169533),\n",
       " ('街区的纬度', 8.705681915719548),\n",
       " ('街区的经度', 5.88063274731183),\n",
       " ('住户的收入中位数^2', -0.0313081210095138),\n",
       " ('住户的收入中位数 房屋使用年代的中位数', 0.0018599475393608605),\n",
       " ('住户的收入中位数 该街区平均的房间数目', 0.043302036387842704),\n",
       " ('住户的收入中位数 该街区平均的卧室数目', -0.1861422884820042),\n",
       " ('住户的收入中位数 街区人口', 5.728314010956206e-05),\n",
       " ('住户的收入中位数 平均入住率', -0.00259019450741919),\n",
       " ('住户的收入中位数 街区的纬度', -0.1525057186944929),\n",
       " ('住户的收入中位数 街区的经度', -0.14424294470380783),\n",
       " ('房屋使用年代的中位数^2', 0.00021172536249754108),\n",
       " ('房屋使用年代的中位数 该街区平均的房间数目', -0.0012621898121649244),\n",
       " ('房屋使用年代的中位数 该街区平均的卧室数目', 0.010611503740612926),\n",
       " ('房屋使用年代的中位数 街区人口', 2.8188531228417142e-06),\n",
       " ('房屋使用年代的中位数 平均入住率', -0.001817169463555776),\n",
       " ('房屋使用年代的中位数 街区的纬度', -0.010069037408713212),\n",
       " ('房屋使用年代的中位数 街区的经度', -0.00999950183371761),\n",
       " ('该街区平均的房间数目^2', 0.007269477678420887),\n",
       " ('该街区平均的房间数目 该街区平均的卧室数目', -0.06890643779325023),\n",
       " ('该街区平均的房间数目 街区人口', -6.823655905927973e-05),\n",
       " ('该街区平均的房间数目 平均入住率', 0.02688788386934239),\n",
       " ('该街区平均的房间数目 街区的纬度', 0.08750899544328644),\n",
       " ('该街区平均的房间数目 街区的经度', 0.08228904004428692),\n",
       " ('该街区平均的卧室数目^2', 0.16018095673076294),\n",
       " ('该街区平均的卧室数目 街区人口', 0.0005142639998074091),\n",
       " ('该街区平均的卧室数目 平均入住率', -0.08719113737712175),\n",
       " ('该街区平均的卧室数目 街区的纬度', -0.4370430370283017),\n",
       " ('该街区平均的卧室数目 街区的经度', -0.40415061190830226),\n",
       " ('街区人口^2', 2.7377915550354326e-09),\n",
       " ('街区人口 平均入住率', 1.9142675218200485e-05),\n",
       " ('街区人口 街区的纬度', 2.2952983073875922e-05),\n",
       " ('街区人口 街区的经度', 1.4656775674481048e-05),\n",
       " ('平均入住率^2', 8.7156103435594e-05),\n",
       " ('平均入住率 街区的纬度', 0.02133445921994704),\n",
       " ('平均入住率 街区的经度', 0.01624129381804313),\n",
       " ('街区的纬度^2', 0.06188673574125679),\n",
       " ('街区的纬度 街区的经度', 0.10810717328653006),\n",
       " ('街区的经度^2', 0.03990773509638848)]"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "[*zip(poly.get_feature_names(X.columns),reg.coef_)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [],
   "source": [
    "coeff = pd.DataFrame([poly.get_feature_names(X.columns),reg.coef_.tolist()]).T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>5.91955e-08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>住户的收入中位数</td>\n",
       "      <td>-11.243</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>房屋使用年代的中位数</td>\n",
       "      <td>-0.848899</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>该街区平均的房间数目</td>\n",
       "      <td>6.44106</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>该街区平均的卧室数目</td>\n",
       "      <td>-31.5913</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>街区人口</td>\n",
       "      <td>0.000406091</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>平均入住率</td>\n",
       "      <td>1.00386</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>街区的纬度</td>\n",
       "      <td>8.70568</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>街区的经度</td>\n",
       "      <td>5.88063</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>住户的收入中位数^2</td>\n",
       "      <td>-0.0313081</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>住户的收入中位数 房屋使用年代的中位数</td>\n",
       "      <td>0.00185995</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>住户的收入中位数 该街区平均的房间数目</td>\n",
       "      <td>0.043302</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>住户的收入中位数 该街区平均的卧室数目</td>\n",
       "      <td>-0.186142</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>住户的收入中位数 街区人口</td>\n",
       "      <td>5.72831e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>住户的收入中位数 平均入住率</td>\n",
       "      <td>-0.00259019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>住户的收入中位数 街区的纬度</td>\n",
       "      <td>-0.152506</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>住户的收入中位数 街区的经度</td>\n",
       "      <td>-0.144243</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>房屋使用年代的中位数^2</td>\n",
       "      <td>0.000211725</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>房屋使用年代的中位数 该街区平均的房间数目</td>\n",
       "      <td>-0.00126219</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>房屋使用年代的中位数 该街区平均的卧室数目</td>\n",
       "      <td>0.0106115</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>房屋使用年代的中位数 街区人口</td>\n",
       "      <td>2.81885e-06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>房屋使用年代的中位数 平均入住率</td>\n",
       "      <td>-0.00181717</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>房屋使用年代的中位数 街区的纬度</td>\n",
       "      <td>-0.010069</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>房屋使用年代的中位数 街区的经度</td>\n",
       "      <td>-0.0099995</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>该街区平均的房间数目^2</td>\n",
       "      <td>0.00726948</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>该街区平均的房间数目 该街区平均的卧室数目</td>\n",
       "      <td>-0.0689064</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>该街区平均的房间数目 街区人口</td>\n",
       "      <td>-6.82366e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>该街区平均的房间数目 平均入住率</td>\n",
       "      <td>0.0268879</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>该街区平均的房间数目 街区的纬度</td>\n",
       "      <td>0.087509</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>该街区平均的房间数目 街区的经度</td>\n",
       "      <td>0.082289</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>该街区平均的卧室数目^2</td>\n",
       "      <td>0.160181</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>该街区平均的卧室数目 街区人口</td>\n",
       "      <td>0.000514264</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>该街区平均的卧室数目 平均入住率</td>\n",
       "      <td>-0.0871911</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>该街区平均的卧室数目 街区的纬度</td>\n",
       "      <td>-0.437043</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>该街区平均的卧室数目 街区的经度</td>\n",
       "      <td>-0.404151</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>街区人口^2</td>\n",
       "      <td>2.73779e-09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>街区人口 平均入住率</td>\n",
       "      <td>1.91427e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>街区人口 街区的纬度</td>\n",
       "      <td>2.2953e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>街区人口 街区的经度</td>\n",
       "      <td>1.46568e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>平均入住率^2</td>\n",
       "      <td>8.71561e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>平均入住率 街区的纬度</td>\n",
       "      <td>0.0213345</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>平均入住率 街区的经度</td>\n",
       "      <td>0.0162413</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>街区的纬度^2</td>\n",
       "      <td>0.0618867</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>街区的纬度 街区的经度</td>\n",
       "      <td>0.108107</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>街区的经度^2</td>\n",
       "      <td>0.0399077</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                        0            1\n",
       "0                       1  5.91955e-08\n",
       "1                住户的收入中位数      -11.243\n",
       "2              房屋使用年代的中位数    -0.848899\n",
       "3              该街区平均的房间数目      6.44106\n",
       "4              该街区平均的卧室数目     -31.5913\n",
       "5                    街区人口  0.000406091\n",
       "6                   平均入住率      1.00386\n",
       "7                   街区的纬度      8.70568\n",
       "8                   街区的经度      5.88063\n",
       "9              住户的收入中位数^2   -0.0313081\n",
       "10    住户的收入中位数 房屋使用年代的中位数   0.00185995\n",
       "11    住户的收入中位数 该街区平均的房间数目     0.043302\n",
       "12    住户的收入中位数 该街区平均的卧室数目    -0.186142\n",
       "13          住户的收入中位数 街区人口  5.72831e-05\n",
       "14         住户的收入中位数 平均入住率  -0.00259019\n",
       "15         住户的收入中位数 街区的纬度    -0.152506\n",
       "16         住户的收入中位数 街区的经度    -0.144243\n",
       "17           房屋使用年代的中位数^2  0.000211725\n",
       "18  房屋使用年代的中位数 该街区平均的房间数目  -0.00126219\n",
       "19  房屋使用年代的中位数 该街区平均的卧室数目    0.0106115\n",
       "20        房屋使用年代的中位数 街区人口  2.81885e-06\n",
       "21       房屋使用年代的中位数 平均入住率  -0.00181717\n",
       "22       房屋使用年代的中位数 街区的纬度    -0.010069\n",
       "23       房屋使用年代的中位数 街区的经度   -0.0099995\n",
       "24           该街区平均的房间数目^2   0.00726948\n",
       "25  该街区平均的房间数目 该街区平均的卧室数目   -0.0689064\n",
       "26        该街区平均的房间数目 街区人口 -6.82366e-05\n",
       "27       该街区平均的房间数目 平均入住率    0.0268879\n",
       "28       该街区平均的房间数目 街区的纬度     0.087509\n",
       "29       该街区平均的房间数目 街区的经度     0.082289\n",
       "30           该街区平均的卧室数目^2     0.160181\n",
       "31        该街区平均的卧室数目 街区人口  0.000514264\n",
       "32       该街区平均的卧室数目 平均入住率   -0.0871911\n",
       "33       该街区平均的卧室数目 街区的纬度    -0.437043\n",
       "34       该街区平均的卧室数目 街区的经度    -0.404151\n",
       "35                 街区人口^2  2.73779e-09\n",
       "36             街区人口 平均入住率  1.91427e-05\n",
       "37             街区人口 街区的纬度   2.2953e-05\n",
       "38             街区人口 街区的经度  1.46568e-05\n",
       "39                平均入住率^2  8.71561e-05\n",
       "40            平均入住率 街区的纬度    0.0213345\n",
       "41            平均入住率 街区的经度    0.0162413\n",
       "42                街区的纬度^2    0.0618867\n",
       "43            街区的纬度 街区的经度     0.108107\n",
       "44                街区的经度^2    0.0399077"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "coeff"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 与变换前的模型拟合效果进行比对"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [],
   "source": [
    "poly =  PolynomialFeatures(degree=4).fit(X,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_ = poly.transform(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.00000000e+00,  8.32520000e+00,  4.10000000e+01, ...,\n",
       "         2.14375704e+07, -6.91740822e+07,  2.23208766e+08],\n",
       "       [ 1.00000000e+00,  8.30140000e+00,  2.10000000e+01, ...,\n",
       "         2.14114352e+07, -6.91205918e+07,  2.23135730e+08],\n",
       "       [ 1.00000000e+00,  7.25740000e+00,  5.20000000e+01, ...,\n",
       "         2.14071302e+07, -6.91362640e+07,  2.23281821e+08],\n",
       "       ...,\n",
       "       [ 1.00000000e+00,  1.70000000e+00,  1.70000000e+01, ...,\n",
       "         2.28455761e+07, -7.02343579e+07,  2.15922112e+08],\n",
       "       [ 1.00000000e+00,  1.86720000e+00,  1.80000000e+01, ...,\n",
       "         2.28832844e+07, -7.04083200e+07,  2.16635490e+08],\n",
       "       [ 1.00000000e+00,  2.38860000e+00,  1.60000000e+01, ...,\n",
       "         2.27836177e+07, -7.01621999e+07,  2.16064646e+08]])"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6062326851998051"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr = LinearRegression().fit(X,y)\n",
    "lr.score(X,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.74515966783454"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr1 = LinearRegression().fit(X_,y)\n",
    "lr1.score(X_,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
